gpt4 book ai didi

mysql - SQL - 如何对多个表使用 COUNT()

转载 作者:行者123 更新时间:2023-11-29 22:01:20 25 4
gpt4 key购买 nike

我有一个表,其中包含一个 COUNT() 函数,该函数返回所有字段并对它们进行计数。现在,我需要连接另一个表并返回匹配的行数和不匹配的行数。我不太确定如何使用 GROUP BY 和 COUNT() 函数并获得我需要的结果。

SELECT tb1.type, count(tb1.type) as total
FROM table1 tb1
GROUP BY tb1.type

这将为我返回总数:

表 1 的结果:

Type total
Egg 200
Cream 133
Milk 12

那太好了。但是,现在我有另一个表...表 2 有一些匹配的记录,因此在该表上执行相同的查询将显示如下内容:

表2的结果:

Type total
Egg 187
Cream 103
Milk 6

所以,我的结果需要如下所示:

表 1 的结果:

Type total totalINTABLE2 totalNOTINTABLE2
Egg 200 187 13
Cream 133 103 30
Milk 12 6 6

不确定这里加入是否最好,或者是 UNION,还是 EXISTS。让我困惑的是分组依据。

最佳答案

好吧,您可以简单地JOIN两个结果集,例如

SELECT tb1.type, 
tb1.total,
tb2.totalINTABLE2,
(tb1.total - tb2.totalINTABLE2) as totalNOTINTABLE2
FROM (
SELECT type, count(type) as total
FROM table1
GROUP BY type) tb1
JOIN (
SELECT type, count(type) as totalINTABLE2
FROM table2
GROUP BY type) tb2 ON tb1.type = tb2.type;

关于mysql - SQL - 如何对多个表使用 COUNT(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32619325/

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