gpt4 book ai didi

MySQL:在 SELECT 语句中使用 COUNT 函数

转载 作者:可可西里 更新时间:2023-11-01 06:48:52 24 4
gpt4 key购买 nike

我对 MySQL 查询相当陌生,尤其是更复杂的查询。我有两个要连接在一起的表(x 和 y)。表 x 包含名称、ID 和 TotalNum,其中 y 包含 ID 和在线。所以它看起来像这样:

表格X

Name  | Store| TotalNum 
Blah | 1 | 3
Blah1 | 2 | 2 Etc..

表Y

Store| Lane  | Online 
1 | 1 | 1
1 | 2 | 1
1 | 3 | 0
2 | 1 | 1
2 | 2 | 0
Etc..

我正在尝试将我的表格连接在一起并返回在线 = 1 的计数所以,我追求的结果是:

Name  | TotalNum | Online
Blah | 3 | 2
Blah1 | 2 | 1
Etc..

到目前为止,我有以下查询:

SELECT s.Name, s.TotalNum, COUNT(r.Online = 1) AS Online FROM TableX AS r
LEFT JOIN TableY AS s ON s.Store = r.Store
WHERE r.Store = 'xx'

但无论 Online = 1 还是 0,它都只返回总行数。任何帮助表示赞赏。谢谢

最佳答案

应该这样做:

SELECT x.Name, x.TotalNum, SUM(y.Online = 1) Online FROM TableX x
LEFT JOIN TableY y ON x.Store = y.Store
WHERE x.Store = 'xx'

如果 TableY 中没有匹配的元素,您还想要一个 0,那么您应该执行 COALESCE 结果: COALESCE(SUM(y.Online = 1)).

此外,不清楚您所说的 ID 是什么意思,因为我在查询和表中都没有看到任何内容。但是,此查询的工作原理是您只能为单个 Store 设置一个不同的 nameTotalNum

关于MySQL:在 SELECT 语句中使用 COUNT 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20510465/

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