我有一个简单的表'drugs',其中有4列:'EAN','ATC','amount','price'。 EAN和ATC是某种药品代码,而数量基本上是以给定价格购买的药品包装数量。它们都不是唯一的,行可以(并且可能)重复。我需要单个包装的费用,因此我使用了:

SELECT EAN, ATC, ROUND((price/amount),2) FROM drugs


但结果的行数较少。确切地说,毒品共有23,658,687行,而查询结果只有23,657,443。那1,244条记录发生了什么事?我认为结果将具有完全相同的行,但每行中都有新的计算值,而不是旧的两行。

最佳答案



   SELECT EAN, ATC, ROUND((price/amount),2) FROM drugs where 1=1


然后将选择您的所有记录。我不知道为什么它起作用,但是它起作用。我猜有一些确切的重复记录没有得到返回,而新的WHERE语句强制它们出现。

10-07 15:00