Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 每个用户的用户登录总数_Sql - Fatal编程技术网

Sql 每个用户的用户登录总数

Sql 每个用户的用户登录总数,sql,Sql,我正在跟踪用户登录的次数以及登录/注销的时间。例如,数据是: USER LOGGED IN LOGGED OUT ----------------------------------- DAVID 01/01/2015 02/01/2015 GEORGE 02/01/2015 02/01/2015 DAVID 04/01/2015 07/01/2015 PETER 10/01/2015 11/01/2015 DAV

我正在跟踪用户登录的次数以及登录/注销的时间。例如,数据是:

USER       LOGGED IN     LOGGED OUT
-----------------------------------
DAVID      01/01/2015    02/01/2015
GEORGE     02/01/2015    02/01/2015
DAVID      04/01/2015    07/01/2015
PETER      10/01/2015    11/01/2015
DAVID      17/01/2015    18/01/2015
现在,我尝试创建的查询需要返回以下内容:

 USER       LOGGED_IN     LOGGED_OUT      SUM
---------------------------------------------
 DAVID      01/01/2015    02/01/2015       3
 DAVID      04/01/2015    07/01/2015       3
 DAVID      17/01/2015    18/01/2015       3
 GEORGE     02/01/2015    02/01/2015       1 
 PETER      10/01/2015    11/01/2015       1
目前的问题是

select user, logged_in, logged_out
from login_records;
我可以对该查询做什么更改,以将用户的条目总数显示为附加列,而无需进行其他查询?出于性能原因


谢谢。

只需将相关子查询添加到您的选择:

select user, logged_in, logged_out, (select count(*) from login_records t2
                                     where t2.user = t1.user) as sum
from login_records t1;

注意,user在ANSI SQL中是一个保留字,因此您可能需要将其分隔为user、t1.user等。

但是我正在执行另一个查询,不是吗?是的,当然这是另一个查询。你不能免费获得额外的数据。你可以通过分析functions@sagi,我不太确定你来了。OP的查询未被触及,但仍能获得更多信息?您使用的是哪个数据库?可能会有不同的答案,这取决于。。。
Select user, logged_in , logged_out, 
        count(*) over ( partition by user) as sum
from login_records t1;