繁体   English   中英

另一列中值的不同值的 SQL 数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM