gpt4 book ai didi

sql - 如何使用 group by 和 select distinct

转载 作者:行者123 更新时间:2023-12-05 01:25:18 25 4
gpt4 key购买 nike

我使用的是 Firebird 数据库,但使用大多数其他数据库引擎的 SQL 语法的答案也是可以接受的。

我有两个表:

WORKER
workerid: integer
worker names and so ot.

LOGEVENT
logeventid: integer
logday: integer
workerid: integer

因此 LOGEVENT 表用于跟踪工作人员登录。为了简单起见,我在这里使用 logday 作为代表登录日的整数。例如,它可以是从 1 到 365 的一年中的某一天。

因此,典型的日志表可能如下所示:

logeventid   logday     workerid
1 5 3
2 5 4
3 5 3
4 5 7
5 6 4
6 6 3
7 6 4

正如所见,id = 3 的工作人员在第 5 天进行了两次登录。

现在我需要创建一个 SQL 查询来生成每天“唯一”登录的总数(同一工作人员在同一天的多次登录应计为一个事件)。

以下查询:

select  count(logeventid) as logincount, logday from logevent
group by logday
order by logday

第 5 天将显示 logincount = 4。因为它计算了 id = 3 的 worker 两次。虽然我必须只计算不同的 worker 登录。因此,我需要一个在第 5 天只生成 3 次登录的查询。

最佳答案

您想计算每天不同的用户数:

select logday, count(distinct workerid) as logincount
from logevent
group by logday
order by logday;

关于sql - 如何使用 group by 和 select distinct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47768286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com