gpt4 book ai didi

mysql - 从单独的表中添加计数总计

转载 作者:行者123 更新时间:2023-11-29 04:32:14 25 4
gpt4 key购买 nike

我有 2 个表都引用了国家/地区。这是通过表 1 和/或表 2 中的国家/地区字段实现的。

我可以通过以下语句计算金额

SELECT co.*,  
(SELECT COUNT(*) FROM table1 m WHERE m.country=co.id) AS mCount,
(SELECT COUNT(*) FROM table2 e WHERE e.country=co.id) AS eCount FROM countries co

结果是这样的:

| id | name      | mCount | eCount |

但是我想把mCount中的值加到eCount的值上。我期待一个简单的加号,例如:

SELECT co.*, mCount+eCount AS grandTotal

但这行不通。如何在查询中添加这些列?

最佳答案

1- 您可以将查询用作派生表。

SELECT dt.*, (dt.mCount + dt.eCount) AS grandTotal FROM 
(SELECT co.*,
(SELECT COUNT(*) FROM table1 m WHERE m.country=co.id) AS mCount,
(SELECT COUNT(*) FROM table2 e WHERE e.country=co.id) AS eCount FROM countries co
) AS dt;

2-您可以进一步选择计算列

SELECT co.*,  
(SELECT COUNT(*) FROM table1 m WHERE m.country=co.id) AS mCount,
(SELECT COUNT(*) FROM table2 e WHERE e.country=co.id) AS eCount,
(SELECT mCount + eCount) AS grandTotal
FROM countries co

3- 你也可以定义用户变量(不鼓励)

SELECT co.*,  
@mCount := (SELECT COUNT(*) FROM table1 m WHERE m.country=co.id) AS mCount,
@eCount := (SELECT COUNT(*) FROM table2 e WHERE e.country=co.id) AS eCount,
(@mCount + @eCount) AS grandTotal
FROM countries co

我希望你会最喜欢#2 :)

关于mysql - 从单独的表中添加计数总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58711417/

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