gpt4 book ai didi

sql-server - 如何选择列和计数(*)?在 SQL 中

转载 作者:行者123 更新时间:2023-12-03 09:36:46 25 4
gpt4 key购买 nike

我有这样的表:

User (idUser, nameUser, etc)

Chat (idChat, txtChat)

Members(idUser, idChat)



我必须选择 User 中的所有列,以及有多少群聊(超过 2 个成员)被称为用户,以及多少个常规聊天(两个成员)。

我的第一个想法是进行两个或多个选择并使用联合,但结果证明它并不完全像那样工作。

我试过这样的事情
    select *
from User
where idUser in (select idUser
from Members)

我试着让聊天的用户,但我真的不知道如何计算

或类似的东西,我真的不知道在哪里放 count (*) 我知道如何计算选择得到的行数,但我不知道如何将它作为另一列

最佳答案

这样的事情应该为你做一些事情(使用 GROUP BY ):

SELECT  u.idUser,
u.nameUser,
COUNT(DISTINCT m.idChat) as countChats
FROM [User] u
LEFT JOIN Members m
ON u.idUser = m.idUser
GROUP BY u.idUser, u.nameUser

或与 PARTITION BY
SELECT DISTINCT 
u.idUser,
u.nameUser,
COUNT(m.idChat) OVER (PARTITION BY nameUser) as countChats
FROM [User] u
LEFT JOIN Members m
ON u.idUser = m.idUser

关于sql-server - 如何选择列和计数(*)?在 SQL 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37771933/

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