SQL将重复记录作为Distinct记录和唯一记录一起返回

时间:2018-04-04 04:56:40

标签: sql

我是SQL的新手,我在使用一个表来解决问题时无法获得两个组合结果。我有一个表有重复的条目和单独的条目。我希望我的结果显示单个条目并显示重复项的不同条目。我的桌子是这样的:

Date      Code      Units  
1-1-18    Bottles    12  
1-5-18    Cars       11  
1-2-18    Trains     6  
1-15-18    Boats     9  
1-16-18    Boats     7  
1-15-18    Boats     9  
1-16-18    Plains    8  
1-16-18    Plains    8  
1-16-18    Boats     7  
1-15-18    Boats     9  

我要找的结果是:

 Date      Code      Units
 1-1-18    Bottles   12
 1-5-18    Cars      11
 1-2-18    Trains    6
 1-15-18   Boats     9
 1-16-18   Plains    8
 1-16-18   Boats     7 

我一直在阅读有关自联接和group by以及使用distinct的内容,但我无法弄清楚我需要使用哪个子句。我想我需要为船只和平原单位使用MAX等聚合函数,但我不知道。如果有人能让我开始朝着正确的方向前进,我将非常感激。

3 个答案:

答案 0 :(得分:1)

Select distinct date, code, units from yourTable

答案 1 :(得分:0)

根据您的示例或所需结果,您只需使用group by子句来避免重复

select date, code, units
from table t
group by date, code, units

另一种选择,您也可以只使用distinct

select distinct date, code, units
from table t

答案 2 :(得分:0)

解决您的问题:

SELECT Date, Code, Units
FROM Table_Name
GROUP BY Date, Code, Units;

由于GROUP BY将收集单个条目以及其中一个条目的重复条目。

<强> OUPUT:

Date        Code     Units
2018-01-01  Bottles  12
2018-01-02  Trains   6
2018-01-05  Cars     11
2018-01-15  Boats    9
2018-01-16  Boats    7
2018-01-16  Plains   8

点击演示链接:

  

https://www.db-fiddle.com/f/cPF38vqKPzWrpgkYbGvdLi/0