mysql-多行计数查询
例如,我这里有一个数据mysql-多行计数查询,mysql,sql,select,count,Mysql,Sql,Select,Count,例如,我这里有一个数据 ID Doctor Status 1 Wooka Approved 2 Jamba Approved 3 Jamba Approved 4 Wooka Approved 5 Wooka Approved 6 Wooka Approved 7 Wooka Approved . . . . . . .
ID Doctor Status
1 Wooka Approved
2 Jamba Approved
3 Jamba Approved
4 Wooka Approved
5 Wooka Approved
6 Wooka Approved
7 Wooka Approved
. . .
. . .
. . .
99
对于前7行(演示目的,不限于7行),我希望它像这样输出
Doctor Count
Wooka 5
Jamba 2
虽然我不知道如何在COUNT()中做到这一点
我真的不知道如何让我的要求变得灵活 您可以在子查询中使用
limit
子句来限制返回的行数,然后使用执行计数的聚合查询来包装此查询:
SELECT doctor, COUNT(*)
FROM (SELECT doctor
FROM mytable
WHERE status = 'Approved'
ORDER BY id ASC
LIMIT 7 -- or some other number
) t
GROUP BY doctor
查看如何分组BY@Noobster对这就是group by
子句用于Hello的内容,是的,这是有效的。但我想知道如何映射所有的状态?如Approved、Pending、Denied……列表会一直持续下去?@Noobster如果您想对每个状态进行计数,请删除内部的where
子句,并将状态添加到group by
子句中。@Noobster是的,的确如此。这不处理“前7行”要求。
SELECT doctor, COUNT(*)
FROM (SELECT doctor
FROM mytable
WHERE status = 'Approved'
ORDER BY id ASC
LIMIT 7 -- or some other number
) t
GROUP BY doctor
SELECT
t.doctor,
COUNT(*) AS c
FROM
table t
WHERE
t.status = 'Approved'
GROUP BY
t.doctor