我听取了构建SQL语句的一些帮助。目前我有以下内容:
SELECT a, b, count(1)
FROM table
GROUP BY a, b
ORDER BY a asc, count(1) DESC
每一行显示每个分组a中所有唯一B的总和,并按字母顺序排序,然后按B的最高出现次数排序到最低。我真正想要的是能够按A的每个分组中的总数进行排序(将每一行视为小计)。
答案 0 :(得分:4)
SELECT a, b, COUNT(*) AS bcnt,
(
SELECT COUNT(*)
FROM mytable mi
WHERE mi.a = mo.a
) AS acnt
FROM mytable mo
GROUP BY
a, b
ORDER BY
acnt DESC, bcnt DESC