发布网友 发布时间:2022-04-26 20:07
共4个回答
懂视网 时间:2022-05-07 20:55
bitsCN.com
distinct在sqlserver中不能解决的去重问题max groupby
1:SELECT * FROM T_STANDARD_SYSTEM GROUP BY SYSTEM_ID ORDER BY SYSTEM_ID2:SELECT *,COUNT(DISTINCT system_id) FROM T_STANDARD_SYSTEM GROUP BY SYSTEM_ID ORDER BY SYSTEM_IDselect * FROM T_STANDARD_SYSTEM WHERE system_Id IN(SELECT MAX(system_id) FROM T_STANDARD_SYSTEM GROUP BY system_id)
上面第二条是解决mysql不同版本不兼容问题,第一条在某些版本中是能用的。但是不规范在sqlserver中两条都不能用。
SELECT SYSTEM_ID,MAX(SYSTEM_NAME) SYSTEM_NAME,MAX(SYSTEM_ABRIDGE) SYSTEM_ABRIDGE,MAX(SUB_SYSTEM_ID) SUB_SYSTEM_ID,MAX(SUB_SYSTEM_NAME) SUB_SYSTEM_NAME, MAX(CUSTOM_SYSTEM_ID) CUSTOM_SYSTEM_ID,MAX(CUSTOM_SYSTEM_NAME) CUSTOM_SYSTEM_NAME FROM T_STANDARD_SYSTEM GROUP BY SYSTEM_ID ORDER BY SYSTEM_ID
以上这条是解决sqlserver和mysql上面那个不兼容问题的。
Oracle提供一个rowId可以通过子查询方便的解决上述去重问题
bitsCN.com
热心网友 时间:2022-05-07 18:03
SQL SELECT DISTINCT 语句
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词 DISTINCT 用于返回唯一不同的值。
语法:
SELECT DISTINCT 列名称 FROM 表名称
编辑本段
使用 DISTINCT 关键词
如果要从 "Company" 列中选取所有的值,我们需要使用 SELECT 语句:
SELECT Company FROM Orders
"Orders"表:
IBM3532
W3School2356
Apple4698
W3School6953
结果:
IBM
W3School
Apple
W3School
请注意,在结果集中,W3School 被列出了两次。
如需从 Company" 列中仅选取唯一不同的值,我们需要使用 SELECT DISTINCT 语句:
SELECT DISTINCT Company FROM Orders
结果:
IBM
W3School
Apple
现在,在结果集中,"W3School" 仅被列出了一次。
热心网友 时间:2022-05-07 19:21
distinct
热心网友 时间:2022-05-07 20:55
distinct