选择大多数重复值并在MySQL中对它们进行排序

时间:2011-10-29 18:07:20

标签: mysql

假设我有这张桌子

no | date       | no1   | no2    | no3   |
------------------------------------------
01 | 1993-05-01 | 0019  | 1124   | 0592  | 
02 | 1993-05-02 | 1234  | 4221   | 5543  | 
03 | 1993-05-03 | 4321  | 0019   | 0019  | 
04 | 1993-05-04 | 0019  | 1112   | 6876  | 

什么MySQL查询将返回最重复的数字并按最新日期排序?

1 个答案:

答案 0 :(得分:0)

您需要先“压平”您的数据集。您可以通过为每列运行1个查询,然后在具有group by的联合上执行UNION和SELECT来执行此操作。

SELECT date, no, SUM(c) c FROM (
SELECT max(date) date, no1 AS no, count(no1) c FROM table GROUP BY no
UNION
SELECT max(date) date, no2 AS no, count(no1) c FROM table GROUP BY no
UNION
SELECT max(date) date, no3 AS no, count(no1) c FROM table GROUP BY no
) grouped_data GROUP BY no ORDER BY c DESC