提前致谢。
我想首先显示具有最多重复值的列,如下所示
col1 col2
1 A
1 B
1 C
1 D
2 A
2 B
2 C
4 D
4 E
3 A
在'col1'中,因为'1'重复四次,它应该首先重复,'2'重复三次,它是第二次。 需要编写sql查询才能得到这个结果。 请帮帮我。
答案 0 :(得分:2)
假设SQL Server 2005或更新版本,您可以使用OVER()
子句:
SELECT *
FROM Table1
ORDER BY COUNT(*) OVER (PARTITION BY col1) DESC
演示:SQL Fiddle
答案 1 :(得分:1)
我建议你这个解决方案:
WITH temp AS (
SELECT col1, count(col2) nb_occurences
FROM tab
GROUP BY
col1)
SELECT
tab.col1, tab.col2, nb_occurences
FROM tab
INNER JOIN
temp
ON temp.col1 = tab.col1
ORDER BY nb_occurences DESC
我希望这会对你有所帮助:)。
祝你好运
答案 2 :(得分:0)
SELECT col1
FROM (SELECT col1, COUNT(*) AS cnt
FROM my_table
GROUP BY col1) t
ORDER BY cnt DESC