[英]Sum the results of SQL query in same Query
I'm trying to sum the results of two columns in the third column我正在尝试对第三列中两列的结果求和
SELECT A.Date, A.EmpID,
SUM(CASE WHEN State = 'active' THEN A.MinutesatState ELSE 0 END) AS active,
SUM(CASE WHEN State = 'idle' THEN A.MinutesatState ELSE 0 END) AS idle,
FROM time A join ttld.login B on A.EmpID=B.username
WHERE DATE = '01-15-2019' GROUP BY A.EmpID
The third column should be the total of the active and idle numbers I have tried below query but due to my little to no knowledge I'm not able to run it第三列应该是我在查询下面尝试过的活动和空闲数字的总和,但由于我的知识很少或一无所知,我无法运行它
SELECT A.Date, A.EmpID,
SUM(CASE WHEN State = 'active' THEN A.MinutesatState ELSE 0 END) AS active,
SUM(CASE WHEN State = 'idle' THEN A.MinutesatState ELSE 0 END) AS idle,
SUM(CASE WHEN State = ('idle','active') THEN A.MinutesatState ELSE 0 END) AS Total_of_active_and_Idle
FROM time A join ttld.login B on A.EmpID=B.username
WHERE DATE = '01-15-2019' GROUP BY A.EmpID
You can try below- you need to add in ('idle','active')您可以在下面尝试-您需要添加 ('idle','active')
SELECT A.Date, A.EmpID,
SUM(CASE WHEN State = 'active' THEN A.MinutesatState ELSE 0 END) AS active,
SUM(CASE WHEN State = 'idle' THEN A.MinutesatState ELSE 0 END) AS idle,
SUM(CASE WHEN State in ('idle','active') THEN A.MinutesatState ELSE 0 END) AS Total_of_active_and_Idle
FROM time A join ttld.login B on A.EmpID=B.username
WHERE DATE = '01-15-2019' GROUP BY A.EmpID,A.Date
You need IN
clause or = any ()
, however MySQL
has shorthand instead of case . . end
你需要
IN
子句或= any ()
,但是MySQL
有简写而不是case . . end
case . . end
case . . end
: case . . end
:
SELECT A.Date, A.EmpID,
SUM( State = 'active' ) AS active,
SUM( State = 'idle' ) AS idle,
SUM( State = any('idle','active') ) AS Total_of_active_and_Idle
FROM time A JOIN
ttld.login B
ON A.EmpID = B.username
WHERE DATE = '01-15-2019'
GROUP BY A.EmpID;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.