mysql查询组并显示可能的值
我在找awser,但在网上找不到(可能是因为我不知道正确的术语)。我正在搜索一个查询,该查询对我的值进行分组,并显示预定义值的零 我的表的值范围为0-5(示例1,0,4,4,0,0,4,2,1,5,0) 我需要一个始终显示所有数字(也带有零值)的查询: nr |金额mysql查询组并显示可能的值,mysql,sql,Mysql,Sql,我在找awser,但在网上找不到(可能是因为我不知道正确的术语)。我正在搜索一个查询,该查询对我的值进行分组,并显示预定义值的零 我的表的值范围为0-5(示例1,0,4,4,0,0,4,2,1,5,0) 我需要一个始终显示所有数字(也带有零值)的查询: nr |金额 0 | 4 1 | 2 2 | 1 3 | 0 4 | 3 5 | 1 这可能吗 问候,Len创建一个单列为“num”的数字表,并插入所有数字(0-5) 然后执行左连接查询并按num分组,如下所示: SELECT num
0 | 4
1 | 2
2 | 1
3 | 0
4 | 3
5 | 1 这可能吗
问候,Len创建一个单列为“num”的数字表,并插入所有数字(0-5) 然后执行左连接查询并按num分组,如下所示:
SELECT num, SUM(amount) AS total
FROM amounts LEFT JOIN numbers ON amounts.nr=numbers.num
GROUP BY num;
这是你需要的。这假设您预先知道值0-5是表中唯一可能存在的值。如果存在其他值,则可以,但不计算它们
select m.nr, ifnull(m.cnt,0) as amount
from
(
select * from
(
select 0 as nr
union all
select 1
union all
select 2
union all
select 3
union all
select 4
union all
select 5
) t1
left join
(
select v, count(*) as cnt from
test
group by v
) t2 on t1.nr = t2.v
) m;
SQL Fiddle在此:
在您的示例中,数字5的金额应为1。