普通的BUG记录

SQL语句使用group by,被group的那些数据默认‘顺序’是怎么的?

答案:按照主键的默认排序,并将被聚合数据中的第一条数据作为原字段的值返回。

如果要将此group by后的数据进行一些不同日期下数据的对比,那么应当将group by的聚合指标作为 key来互相比对,这样才能准确的比对到数据。

-----------------------------------2020-03-09 00:00:00数据--- ----------------------------------------

上图是下图5条数据的聚合

-----------------------------------2020-03-10 00:00:00数据--- ----------------------------------------

上图是下图5条数据的聚合

以上两条数据,原来是以聚合后的site id作为对比的key,而导致程序找不到正确的比对对象。要对比的话,必须以groupkeys这个组合字段为key,不能以其他字段,因为数据的默认顺序会影响默认字段的返回值,site id可能返回不同。

这就是前段时间写出的很低级的BUG,因为自认为插入数据库的时候,数据顺序必然会以site id为先后顺序,而用了聚合后取出的site id 作为对比的key,但是这些site id 可能会随着site的变化被删除,被创建,因而这是个十分愚蠢的bug。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。