gpt4 book ai didi

sql - Microsoft SQL 计数问题

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

嘿,聪明人。我在执行以下 SQL 语句时遇到问题。我知道我无法对 OnlineStatus 列执行 GROUP BY,这是有道理的,因为它是函数调用,而不是表中的实际列。我该如何修改它以便能够计算出有多少用户在线?

SELECT CASE dbo.fnGetWebUserOnlineStatus(W.Id) 
WHEN 1 THEN 'Online'
WHEN 2 THEN 'Ingame'
ELSE 'Offline'
END AS OnlineStatus
FROM dbo.WebUsers W
WHERE W.[Status]=1
GROUP BY OnlineStatus

最佳答案

最好使用子查询来完成:

SELECT OnlineStatus, count(*)
FROM (
SELECT CASE dbo.fnGetWebUserOnlineStatus(W.Id)
WHEN 1 THEN 'Online'
WHEN 2 THEN 'Ingame'
ELSE 'Offline'
END AS OnlineStatus
FROM dbo.WebUsers W
WHERE W.[Status]=1
) sub
GROUP BY OnlineStatus

关于sql - Microsoft SQL 计数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2602638/

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