我有下面这个sql
数据
CREATE TABLE data
(id int, name varchar(9), room varchar(9), paid varchar(9));
INSERT INTO data
(id, name, room, paid)
VALUES
(1, 'jane', 'room1','0'),
(2, 'any', 'room2', '1'),
(3, 'mandy', 'room2', '1'),
(4, 'vivian', 'room2', '1'),
(5, 'amber', 'room3', '1'),
(6, 'fany', 'room4', '1'),
(7, 'diana', 'room4', '0');
查询
SELECT
data.room, COUNT(data.id) as total
FROM
data
WHERE
data.paid = 0
GROUP BY
data.room
示例链接sqlfiddle
现在的结果是
room 1 = 1
room 4 = 1
我想要的结果
room 1 = 1
room 2 = 0
room 3 = 0
room 4 = 1
4条答案
按热度按时间8ljdwjyq1#
cdaiga的答案是正确的,但取决于你的价值观(拥有
0
以及1
允许您执行SUM
技巧)。通常,您希望将原始表与源表的表左联接WHERE
以及GROUP BY
.链接到sqlfiddle
nxagd54h2#
查看SQLFiddle的演示。
vlju58qv3#
据我所知,您要列出所有房间的未付帐单总额。可以使用嵌套的select,如下所示:
在这里摆弄
pqwbnv8z4#
请参见sqlfiddle