gpt4 book ai didi

mysql - SQL使COUNT()返回查询中的总行数

转载 作者:行者123 更新时间:2023-11-29 17:46:43 25 4
gpt4 key购买 nike

我在MySQL中有一个查询如下(表名已更改):

SELECT 

t1.name,
t2.type,
if(data1 = "6", sum(coalesce(data2, 0) * coalesce(data3, 1)) as more_data

FROM table_main tm
JOIN table1 t1 ON tm.t1_id = t1.id
JOIN table2 t2 ON tm.t2_id = t2.id
WHERE day = '2018-01-01'
GROUP BY t1.name, t2.type
ORDER BY more_data DESC

此查询返回大约 400 个结果,但由于某种原因,每次我尝试 count() 任何内容时,它都会返回随机数据,而不是 1 条记录给出此查询给出的记录总数,现在我尝试获取摆脱大部分查询,只保留“if”语句作为选择也能给出所需的结果,但它仍然不允许我在 count() 方法中使用该值,有什么方法可以计数此查询中的记录没有获取随机数据>

最佳答案

你的条件聚合被彻底颠覆了......请在 sum() 中使用 case 表达式。

SELECT 

t1.name,
t2.type,
sum(case when data1 = "6" then coalesce(data2, 0) * coalesce(data3, 1) else 0 end) as more_data

FROM table_main tm
JOIN table1 t1 ON tm.t1_id = t1.id
JOIN table2 t2 ON tm.t2_id = t2.id
WHERE day = '2018-01-01'
GROUP BY t1.name, t2.type
ORDER BY more_data DESC

关于mysql - SQL使COUNT()返回查询中的总行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49756440/

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