我在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()任何东西时,它都会返回随机数据,而不是一条记录给出这个查询给出的记录总数,现在我尝试去掉大部分查询,只将“if”语句保留为select也会给出所需的结果,但是它仍然不允许我在count()方法中使用该值,是否有任何方法可以在不获取随机数据的情况下计算此查询中的记录>
1条答案
按热度按时间am46iovg1#
你的条件聚合由内而外。。。使用
case
内部表达式sum()
相反。