请教各位大神,我要对海量数据进行对比。
sql查询多条数相加判断是否相等,对比的字段为totalnav
对比数据的条件包含code,data,sign
sign为类型,一个M类型可对应多个S类型。M类型的totalnav值等于多个S类型的totalnav值相加
需要判断整个库表所有M类型和S相加的类型相加是否都相等。并且需要code,和date进行分组
因为数据每天会有相同的code数据。所以需要对日期和编码进行分组
请教各位大神,我要对海量数据进行对比。
sql查询多条数相加判断是否相等,对比的字段为totalnav
对比数据的条件包含code,data,sign
sign为类型,一个M类型可对应多个S类型。M类型的totalnav值等于多个S类型的totalnav值相加
需要判断整个库表所有M类型和S相加的类型相加是否都相等。并且需要code,和date进行分组
因为数据每天会有相同的code数据。所以需要对日期和编码进行分组
根据您的问题描述,您需要针对一个包含数据、编码和符号的海量数据集,查询每个编码的M类型和对应的S类型的totalnav之和,然后判断M类型和对应的S类型的totalnav之和是否相等,最后按照编码和日期进行分组并输出结果。
以下是一种可能的 SQL 查询语句实现方式:
SELECT code, data,
CASE WHEN SUM(CASE WHEN sign = 'M' THEN totalnav ELSE -totalnav END) = 0 THEN '相等' ELSE '不相等' END AS result
FROM your_table
GROUP BY code, data
这个查询语句的作用是:对于每个编码和日期,将符合条件的数据行的totalnav值相加,如果所有的M类型和S类型的totalnav之和相等,则将 result
列设为“相等”,否则设为“不相等”。最后按照编码和日期进行分组并输出 code
、data
和 result
三列。
需要注意的是:这个查询语句假定所有的 M 和 S 类型都被正确地标记,并且每一个M类型对应多个S类型。如果数据有误或缺失,可能会导致结果不准确。