【发布时间】:2026-01-10 04:05:02
【问题描述】:
看到很多关于它的帖子,但令人惊讶的是语法问题
这是代码:
SELECT o.shortName AS '1'
,SUM(ai.amount) AS '3'
,....
,COUNT(DISTINCT (IF (et.name LIKE 'lalala',ai.event_id,ai.action_id,ai.visit_id,NULL))) AS '6'
,...
,ROUND(SUM(ai.sum),2) AS '15'
JOIN .... many tables
GROUP BY o.id
好吧,正如你所见,IF 需要 3 个操作数,但 DISTNICT 不能使用括号。
最后不能使用 group by。
错误消息:操作数应包含 1 列 cpt Obvios
附: mysql,INNODB
【问题讨论】:
-
好吧,尝试
COUNT(DISTINCT (IF (et.name LIKE 'Лечебно-диагностический',**CONCAT(ai.event_id,ai.action_id,ai.visit_id)**,NULL)))),但仍然不确定。也许,应该改变表添加列 -
你到底想做什么?请附上预期结果和样本数据
-
这三列和id一样是唯一的。我想检查条件并计算不同的行。
-
预期 - 唯一行。样本数据很难进行大查询
-
CONCAT 更改为 CONCAT_WS(',',ai.event_id,ai.action_id,ai.visit_id)。如果 id 像 ...1-11 ..,它会救我
标签: mysql syntax distinct multiple-columns