Ham*_* Y. 17 mysql sql database count
可以说,我们有这个表:
+------+------+
| COL1 | COL2 |
+------+------+
| A | B |
+------+------+
| B | A |
+------+------+
| C | D |
+------+------+
Run Code Online (Sandbox Code Playgroud)
我想计算两列中出现letter1, letter2或letter2, letter1出现的次数.
我想要结果:
+------+------+------+
| COL1 | COL2 | COL3 |
+------+------+------+
| A | B | 2 |
+------+------+------+
| C | D | 1 |
+------+------+------+
Run Code Online (Sandbox Code Playgroud)
注意:它可以是AB或BA不重要.
我试过了:
SELECT
COL1,COL1,COUNT(*) AS COL3
FROM
X
GROUP BY COL1,COL2;
Run Code Online (Sandbox Code Playgroud)
但这让我:
+------+------+------+
| COL1 | COL2 | COL3 |
+------+------+------+
| A | B | 1 |
+------+------+------+
| B | A | 1 |
+------+------+------+
| C | D | 1 |
+------+------+------+
Run Code Online (Sandbox Code Playgroud)
Dam*_*ver 15
如果需要,可以通过交换列来执行此操作:
SELECT Col1, Col2, COUNT(*)
FROM
(
SELECT
CASE WHEN Col1 < Col2 THEN Col1 ELSE Col2 END AS Col1,
CASE WHEN Col1 < Col2 THEN Col2 ELSE Col1 END AS Col2
FROM T
) t
GROUP BY Col1, Col2
Run Code Online (Sandbox Code Playgroud)