2017-04-24 44 views
-1

假設我有一個這樣的表:我想組根據條件對另一列一個列

 
Column A | Column B 
---------+--------- 
    1  | A 
    1  | B 
    2  | A 
    2  | A 
    2  | C 
    3  | A 
    3  | A 
    3  | B 
    3  | B 

我想寫一個查詢,以這樣的方式,我得到一臺組的值像這樣:

 
Column A | Column B 
---------+--------- 
    1  | A 
    1  | B 
    2  | A 
    2  | C 
    3  | A 
    3  | B 
+1

請提供你是想組在什麼條件。示例表結構不能清楚地說明條件是什麼。 – jon3laze

回答

0

您正在尋找DISTINCTDISTINCT從查詢結果中刪除重複項。

select distinct * from mytable; 

另一種方法是聚合。按a和b分組,可以得到結果行。但是,只有當您需要聚合時,纔會使用此功能,例如行數,總和,平均值等,因爲否則您可以使用DISTINCT如圖所示,應該更喜歡它。

select a, b, count(*) from mytable group by a, b; 
+0

我得到一個錯誤,ORA-00913:值太多 – user3769820

+1

然後你的查詢與我的不同。顯示你的嘗試。 –

0

您需要在兩列上都使用GROUP BY

select col1, col2 from test group by col1,col2; 

SQLFIDDLE

+0

我得到一個錯誤,ORA-00913:太多的值 – user3769820

+0

你正在使用'oracle',所以你應該用相關標籤重新提出問題。 但是,如果您正在正確編寫列名和表名,那麼查詢應該與oracle一起使用。 – Riad

+0

爲什麼GROUP BY在不涉及集合函數的情況下? – jarlh

相關問題