总结MySQL计算的字段,其中列值相同
题
基本上,当某个值(在我的案例Communications_ID中)相等时,我试图总结计算字段的值。这些分数与相同的Communication_ID相关联,我想总结这些值。
我是SQL的新手,这是我误导的第一次尝试:
SELECT *
FROM consumer_action_log as cal1
JOIN consumer_action_log as cal2
ON cal1.COMMUNICATIONS_ID=cal2.COMMUNICATIONS_ID
AND cal1.COMM_TYPE_ID=4
解决方案
SELECT COMMUNICATIONS_ID, SUM(fieldName)
FROM consumer_action_log
WHERE COMM_TYPE_ID = 4
GROUP BY COMMUNICATIONS_ID
我认为不需要在这里加入桌子。
其他提示
即使内在连接的结果相同,也最好将ON和条件分开。更清楚地链接了两个表。
SELECT sum(cal2.somecolumn)
FROM consumer_action_log as cal1
JOIN consumer_action_log as cal2
ON cal1.COMMUNICATIONS_ID=cal2.COMMUNICATIONS_ID
WHERE cal1.COMM_TYPE_ID=4
- 查找cal1记录
COMM_TYPE_ID=4
- 加入CAL2(自加入),communications_id等于cal1
- 总结一下Cal2的一些列
如果过滤器 COMMS_TYPE_ID=4
导致多个 cal1.COMMUNICATIONS_ID
S,那么您将要 GROUP BY
communications_id(从Cal1或Cal2中无关紧要 - 它们是相同的)
SELECT cal2.COMMUNICATIONS_ID, sum(cal2.somecolumn)
FROM consumer_action_log as cal1
JOIN consumer_action_log as cal2
ON cal1.COMMUNICATIONS_ID=cal2.COMMUNICATIONS_ID
WHERE cal1.COMM_TYPE_ID=4
GROUP BY cal2.COMMUNICATIONS_ID
不隶属于 StackOverflow