我有这个查询
SELECT poll_numbers.number_title as totale_stemmen,
count(poll_stemmen.number_id) as stem
FROM poll_stemmen
LEFT JOIN poll_numbers on number_id = poll_numbers.id
group by poll_stemmen.number_id
输出如下:
totale_stemmen stem
name 1
another 1
但是我怎样才能计算出茎的总数呢?在这个结果中它将是 2。
这是表格布局:
poll_stemmen
number_id, id
poll_numbers
id, number_title
示例数据:
id, number_id
1 2
2 8
3 8
4 8
id, number_title
2 title_1
8 title_2
expected output:
number_title, count_number, total_number
title_1 1 4
title_2 3 4
最佳答案
在大多数数据库中,您只需使用窗口函数。但是,MySQL 不支持这一点。
一种方法是在 from
子句或 select
中使用子查询:
SELECT n.number_title, count(s.number_id) as stem,
x.total_number
FROM poll_stemmen s LEFT JOIN
poll_numbers n
on s.number_id = n.id CROSS JOIN
(SELECT count(*) as total_number FROM poll_stemmen) x
group by s.number_id;
将查询放在 from
子句中的一个优点是您知道它只会执行一次。
关于mysql - 对所有值进行计数并使用 count 进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30777961/