结果应该在已登录且未登录计数的单行中。为什么同一帐户又分成两行?
SELECT distinct Account
, SUM(CASE Val WHEN status='logged in' THEN 1 Else 0 END) AS 'Total logged in'
, SUM(CASE Val WHEN status='not logged in' THEN 1 Else 0 END) AS 'total not logged in '
FROM TableAccount
GROUP BY Account
account logged in not logged in
A 21 0
A 0 2
答案 0 :(得分:0)
如果您的表结构相同,这似乎可以提供所需的结果。
create table test1(col1 varchar(10), col2 varchar(10))
insert into test1
values('A','L'),
('A','NL'),
('A','L'),
('A','L')
SELECT distinct col1
, SUM(CASE WHEN col2='L' THEN 1 Else 0 END) AS 'Total logged in'
, SUM(CASE WHEN col2='NL' THEN 1 Else 0 END) AS 'total not logged in '
FROM test1
GROUP BY col1
答案 1 :(得分:0)
SELECT DISTINCT
几乎不需要 GROUP BY
。另外,您是对的,'A'
只能有一行-假设帐户完全相同。
您将获得两行的事实意味着它们并不相同。一个问题可能是空白。您可以检查以下内容:
SELECT DISTINCT '|' + Account + '|'
FROM TableAccount ;
其他问题可能是看起来相同的字符或隐藏的字符。找到问题可能需要进行一些调查。