sql 查询每天都有登录的人
答案:2 悬赏:40 手机版
解决时间 2021-02-24 04:39
- 提问者网友:容嬷嬷拿针来
- 2021-02-24 00:43
比如一个表记录的是每个用户的登录时间,如何查出一周当中每天都有登录的用户或者一周当中有5天都有登录的用户
最佳答案
- 五星知识达人网友:青灯有味
- 2021-02-24 00:49
不知道什么数据库, 先按 SQL Server 的方式写了。
SELECt
用户,
COUNT ( DISTINCT Convert(VARCHAr(30), 登录时间 , 112) ) AS 最近7天的打卡次数
FROM
用户登录表
WHERe
登录时间 >= DATEADD(dd, -7, DATEADD(DD, DATEDIFF(DD, 0, GETDATE()), 0) )
GROUP BY
用户
HAVINg
COUNT ( DISTINCT Convert(VARCHAr(30), 登录时间 , 112) ) >= 5
SELECt
用户,
COUNT ( DISTINCT Convert(VARCHAr(30), 登录时间 , 112) ) AS 最近7天的打卡次数
FROM
用户登录表
WHERe
登录时间 >= DATEADD(dd, -7, DATEADD(DD, DATEDIFF(DD, 0, GETDATE()), 0) )
GROUP BY
用户
HAVINg
COUNT ( DISTINCT Convert(VARCHAr(30), 登录时间 , 112) ) >= 5
全部回答
- 1楼网友:像个废品
- 2021-02-24 02:05
把*改成具体的字段。比如,你想在users表里查找id=1,并且pwd=abd的用户的姓名、年龄,可以把星号替换为name,age 例:
select age,name from users where id = 1 and pwd = 'abd';
当时学数据库的时候老师万千告诫过我们到了企业中千万不能用*来查询。为什么呢?因为*默认所有,就是把数据表里的所有符合的相关信息都给你找出来了,不管你需要不需要。比如以上的例子,我只想找到符合条件(id=1,pwd=abd)的用户的姓名、年龄。但是如果你写成*(星号)的话,那么查询的基数就很大了。如果你的数据库数据表是海量的,那么,岂不是一条简单的查询语句就会很慢?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯