我的存储过程有问题。
我收到错误:
无法对包含聚合或子查询的表达式执行聚合函数
这是我认为发生错误的存储过程的一部分:
SELECT column_1, column_2,
SUM(CASE WHEN column_2 NOT IN (SELECT product FROM table_products) THEN 1
ELSE 0
END) AS Total
FROM my_table
WHERE is_rated = '1'
GROUP BY column_1, column_2
谢谢你。
原文由 jomsk1e 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您尝试避免相关子查询,通常会获得更好的性能:
这假设 Products 表中最多只有一个匹配项(Products,而不是 Table_Products - 当然它是一个表,所以不要把它放在名称中)。换句话说,如果产品是 Products 表的 PK(或 AK),这将起作用。
If that’s not the case and you might have multiple matches in the
Products
table then you canJOIN
to a subquery that usesDISTINCT
on theproduct
专栏。