Group By 几个字段之间的匹配
Group By a match between several fields
我有一个 table 喜欢:
| id | field1 | field2 | field3 |
---------------------------------------------
| 1 | A | B | C |
| 2 | E | F | G |
| 3 | H | A | I |
| 4 | *null* | J | K |
| 5 | C | L | M |
---------------------------------------------
现在我想分组查找重复项。我写了这个查询:
SELECT FIRST(ID), COUNT(id)
FROM MyTable
GROUP BY field1
HAVING COUNT(id) > 1
此 returns 仅在 field1
中重复。如果我写 GROUP BY field1, field2, field3
它 returns 在三个字段中重复。
但我想从任何字段中找到重复项并将结果集分组。也就是说,这样的结果:
| Count | Value |
---------------------
| 2 | A |
| 2 | C |
---------------------
是否可以简单分组?
这些值是非固定宽度的,可以为空。
您可以创建联合查询:
SELECT Field1 AS FieldValue FROM MyTable
UNION ALL
SELECT Field2 AS FieldValue FROM MyTable
UNION ALL
SELECT Field3 AS FieldValue FROM MyTable
现在将此查询用作与您的原始查询类似的查询的来源。
我有一个 table 喜欢:
| id | field1 | field2 | field3 |
---------------------------------------------
| 1 | A | B | C |
| 2 | E | F | G |
| 3 | H | A | I |
| 4 | *null* | J | K |
| 5 | C | L | M |
---------------------------------------------
现在我想分组查找重复项。我写了这个查询:
SELECT FIRST(ID), COUNT(id)
FROM MyTable
GROUP BY field1
HAVING COUNT(id) > 1
此 returns 仅在 field1
中重复。如果我写 GROUP BY field1, field2, field3
它 returns 在三个字段中重复。
但我想从任何字段中找到重复项并将结果集分组。也就是说,这样的结果:
| Count | Value |
---------------------
| 2 | A |
| 2 | C |
---------------------
是否可以简单分组? 这些值是非固定宽度的,可以为空。
您可以创建联合查询:
SELECT Field1 AS FieldValue FROM MyTable
UNION ALL
SELECT Field2 AS FieldValue FROM MyTable
UNION ALL
SELECT Field3 AS FieldValue FROM MyTable
现在将此查询用作与您的原始查询类似的查询的来源。