我需要选择 A 列和 B 列的不同组合,并为 A、B 的组合不唯一的所有行返回 A 的值。
这是我的查询,我想以某种方式添加 A 列以显示在结果中:
SELECT DISTINCT A, B, count(id) as cnt FROM files_imported WHERE file_id = 13 GROUP BY A, B HAVING cnt > 1
查询按原样工作正常,但我需要对其进行修改,以便可以获得满足上述条件的 A 的值。
最佳答案
您可以使用'UNION ' 合并两个查询结果(需要指出它们需要具有相同的列数据类型 - 这是为了解释第二个查询中的 '') 所以你的查询是:
SELECT DISTINCT A, B, count(id) as cnt FROM files_imported WHERE file_id = 13 GROUP BY A, B HAVING cnt > 1
UNION
SELECT DISTINCT A, '', count(id) as cnt FROM files_imported WHERE file_id = 13 GROUP BY A, B HAVING cnt = 1
关于MySQL - 选择 2 列的不同组合并分别返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21392797/