繁体   English   中英

如何选择不同的记录

[英]How do I select distinct records

我想从我的数据中选择不同的记录,因为它会显示重复的记录。 这是我的查询的样子:

SELECT DISTINCT ID,
  FirstName,
  SecondName,
  Department,
  Company,
  TotalEmployee,
  COUNT(
  CASE TotalAwards
    WHERE 1
    THEN 1
    ELSE NULL
  END),
  COUNT(
  CASE TotalRespect
    WHERE 1
    THEN 1
    ELSE NULL
  END)
FROM tablename
GROUP BY FirstName,
  SecondName,
  Department,
  Company,
  TotalEmployee 

我加入了不同的词,但仍然得到重复的结果

DISTINCT关键字与该列一起使用,您想获得不同的值,ID始终是不同的。 由于DISTINCT FirstName比名字将不同。

您正在寻找:

SELECT FirstName,
  SecondName,
  Department,
  Company,
  TotalEmployee,
  COUNT(
  CASE TotalAwards
    WHERE 1
    THEN 1
    ELSE NULL
  END),
  COUNT(
  CASE TotalRespect
    WHERE 1
    THEN 1
    ELSE NULL
  END)
FROM tablename
GROUP BY FirstName,
  SecondName,
  Department,
  Company,
  TotalEmployee 

要么

SELECT ID,
  FirstName,
  SecondName,
  Department,
  Company,
  TotalEmployee,
  COUNT(
  CASE TotalAwards
    WHERE 1
    THEN 1
    ELSE NULL
  END),
  COUNT(
  CASE TotalRespect
    WHERE 1
    THEN 1
    ELSE NULL
  END)
FROM tablename
GROUP BY ID, 
FirstName,
  SecondName,
  Department,
  Company,
  TotalEmployee 

您可以使用row_number()和by()分区来获得所需的结果

尝试这样:

select * from
(
select *,rn=row_number()over(partition by Totalawards,totalrespect order by Firstname)
from table
)x
where x.rn=1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM