选择整个组时子查询结果不同

时间:2015-02-15 22:00:09

标签: sql-server

我正在使用SQL Server 2012中的以下查询。

当我运行时,我得到以下内容。

但是,如果我为所有抗菌药运行此项,请注释

AND THERAPEUTIC_CLASS_NAME IN ('Beta-lactam, Penicillins', 'Beta-lactam, Cephalosporins')           

并且没有进行其他更改,数字不匹配。我一直在拉我的头发为什么结果不同但无济于事。我对此表示感谢。

在更高级别选择时。

1 个答案:

答案 0 :(得分:1)

问题出在row_number表达式中。

相同的NDC可以出现在多个治疗类别下,但row_numbering不是确定性的。删除过滤器会导致旧查询中的许多行获得不同的编号,从而在不同的类别下移动。

我不确定row_number是否是一个适当的修复程序来消除这些重复项,但如果是,那么你必须添加更多的排序列。 (在与分区相同的列上排序也不做任何事情。)