关于group by 问题 返回多字段记录数不正确
有个表 , id 降水量,加入时间 坐标X 坐标Y 等等字段。
我现在要求的是过去几小时之内的 降水量
select sum(降水量) from 表 (where省略) group by id;
这样是获得的条数是正确的
但是当我select sum(降水量) (这里加其他字段) 后面也要在group by 加上哪些字段的时候
获得的结果记录数是不正确的,不知道大家碰到没有?
------解决方案--------------------
select sum(降水量) (这里加其他字段)
这里其他字段相同的都视为同一条记录,如果其他字段中只有id那么只要id相同就视为同一条记录,对同一个id进行sum运算。当其他字段不唯一时,也就是有好多个其他字段,那么这些字段相同的时候,对相同的这些“其他字段”进行sum运算。你好好看看group by的含义是什么,你就会知道了。希望对你有帮助,谢谢
------解决方案--------------------可以先用子查询查询出汇总的值和一个标识值,然后用exists来获取其他字段
------解决方案--------------------假设你需要加入id和坐标X,可以用:
SELECT a.id ,
b.降水量,a.坐标X
FROM 表 a
INNER JOIN ( SELECT id ,
SUM(降水量) 降水量
FROM 表(where省略)
GROUP BY id
) b ON a.id = b.id