![](/img/trans.png)
[英]SQL - How to count number of distinct values (payments), after sum of rows where they have another column value (Due Date) in common
[英]SQL number of distinct values for the value in another column
假设我有一个用户登录表:
create table usr_logins
(
id int primary key,
logint_date date,
user_name text,
os_ver int
);
insert into usr_logins
values (1, '2018-12-23', 'Jack', 10)
,(2, '2018-12-24', 'Sam', 11)
,(3, '2018-12-24', 'Jack', 10)
,(4, '2018-12-24', 'Ann', 10)
,(5, '2018-12-25', 'Sam', 10)
,(6, '2019-12-26', 'Sam', 10)
我需要获取具有多个不同操作系统版本的用户名列表。
请注意,只有 Sam 从 os_ver 10 和 11 登录。
这就是我需要的:
由于您需要显示所有用户名和相应的不同 os_version 计数(作为 os_num),您可以尝试以下操作:
select user_name, count(DISTINCT os_ver) as os_num from usr_logins group by user_name
不清楚您是否只期待用户 Sam,因为您以红色突出显示,但如果是这样,您可以这样做
select user_name, Count(distinct os_ver) os_num
from usr_logins
group by User_Name
having Count(distinct os_ver)>1
select user_name, count(os_ver) osCount from usr_logins group by user_name having osCount > 1
希望我能正确理解你的问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.