gpt4 book ai didi

mysql - 计算一个表中与另一表中的条件匹配的记录数

转载 作者:行者123 更新时间:2023-11-29 09:52:47 25 4
gpt4 key购买 nike

我试图从 table1 中获取与 table2 中的类别匹配的记录计数。

例如,表格可能如下所示:

ID     A          
1 value1
2 value2
3 value3
4 value2

ID A Category
1 value1 Category1
2 value2 Category1
3 value3 Category2

现在假设我要统计 Table1 中属于 Category1 的记录

我提出的查询:

SELECT count(table1.A) as count, table2.Category from table1, table2 
WHERE table2.Category = 'Category1' AND table1.A = table2.A
GROUP BY table2.Category
ORDER BY count DESC

预期结果:

Category1  3

我得到的结果:

Category1  6

计数是A在table1中出现的次数乘以A在table2中出现的次数。我还尝试了 LEFT JOIN,但这给出了相同的结果。

如何防止这种情况并仅获取 table1 的计数?

最佳答案

只要您使用已知在 table1 中唯一的列,就可以使用 COUNT(DISTINCT) 来减少计数。

SELECT COUNT(DISTINCT table1.id) as count, table2.Category 
FROM table1 JOIN table2 ON table1.A = table2.A
WHERE table2.Category = 'Category1'
GROUP BY table2.Category
ORDER BY count DESC

P.S.:注意我还更改了它以使用现代 JOIN 语法。这对于解决方案来说不是必需的,但我们是时候停止使用 1989 年的逗号样式连接语法了。

关于mysql - 计算一个表中与另一表中的条件匹配的记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54506567/

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