从单列SQL中选择Distinct

时间:2017-03-29 13:41:26

标签: sqlite group-by distinct

我有一个SQLite3数据库,我需要从以下查询中选择特定行(H981.VISITID)中的DISTINCT:

`SELECT 
         H981.VISITID AS pat_no, H98.MED_REC_NO 

FROM     H98_Paradigm_Encounters H98
LEFT OUTER JOIN H98_MLO_Encounters H981 
  ON H98.MED_REC_NO=H981.EXTERNALID`

结果目前正在产生这样的结果:

|pat_no|med_rec_no|note|
|1     |4545      |Test|
|2     |4545      |Test|
|3     |4545      |Test|
|4     |4545      |    |
|1     |4545      |    |
|2     |4545      |    |
|3     |4545      |    |
|4     |4545      |Test|

我希望结果产生类似的结果:

|pat_no|med_rec_no|note|
|1     |4545      |Test|
|2     |4545      |Test|
|3     |4545      |Test|
|4     |4545      |    |

我已经尝试了一些我在这里看过的东西,但似乎没有任何效果。有什么建议吗?

1 个答案:

答案 0 :(得分:0)


你不能用单列DISTINCT,而只能行一行:

select DISTINCT 

返回唯一行的列表 您正在寻找的东西被称为“分组依据”,您不能将它用于如此变异的列。为什么?让我们假设您只想获得一个H981.VISITID值,但H981.VISITID的一个值是指来自H98.DIAGNOSIS_2的两个值。那么显示哪一个呢?目前尚不清楚 只需按分组查看或在评论中说出您想要收到的内容,我会帮助您:)

    SELECT distinct
         H981.VISITID AS pat_no, H98.MED_REC_NO 

FROM     H98_Paradigm_Encounters H98
LEFT OUTER JOIN H98_MLO_Encounters H981 
  ON H98.MED_REC_NO=H981.EXTERNALID`

如果med_rec_no中的所有值包含与某个pat_no相同的值,则会起作用!!其他方式您需要使用group by(查看此主题Select first row in each GROUP BY group?