Min()或Max()等函数是否可能破坏记录的完整性?以我最近制作的查询为例:
SELECT帐户,MIN(电话),MIN(chargeid),MIN(locationid)FROM import1 GROUP BY帐户,电话
我是否有机会无意中将我的现场数据混合到新记录中?如果我将一分钟改为最大值怎么办?如果我选择的话,我可以破坏记录的完整性吗?
谢谢, 多诺万
答案 0 :(得分:7)
您实际上并未改变该查询中的数据,您只是选择或查看它。
除非您执行UPDATE,INSERT或DELETE或调用存储过程,否则不会更改数据。
答案 1 :(得分:3)
我不确定破坏记录完整性是什么意思,但调用MIN或MAX函数没有任何问题。这是一种非常常见的查询。
您不应该假设结果集中一行中的所有值都来自原始表中的同一行。值可以来自不同的行。例如,如果表中的数据是:
account phone chargeid locationid 123 456 10 30 123 456 40 20
然后结果将是:
account phone MIN(chargeid) MIN(locationid) 123 456 10 20
“10”来自第一行,“20”来自第二行。
此外,您在手机上使用MIN似乎是不必要的。您应该只选择此字段,因为它是组的一部分:
SELECT account, phone, MIN(chargeid), MIN(locationid)
FROM import1
GROUP BY account, phone
答案 2 :(得分:1)
我相信他的问题是,如果存在以下数据
Account Phone ChargeId LocationId
1 111-1111 6 8
2 111-1111 7 7
2 111-1111 8 6
它会返回2,111-1111,7,6(来自chargeId(2)的7和来自LocationId(3)的6)。
如果这就是你所要求的,那么是的。它会破坏你的结果。