2013-07-31 64 views
0

我需要編寫一個查詢來過濾我的數據。 在我的表中我有所有的數據按val1分組,但val2女巫的多個值我必須刪除。與羣組不同

我的表是這樣的:

| id | val1 | val2 | other | 
|------------------|------- 
| 1 | A1 | b1 | ... 
| 2 | A1 | b1 | ... 
| 3 | A1 | b2 | 

| 4 | A2 | b1 | 

| 5 | A3 | b1 | 
| 6 | A3 | b1 | 
| 7 | A3 | b2 | 

| 8 | A4 | b1 | 
| 9 | A4 | b3 | 
| 10 | A5 | b1 | 

,我需要這樣的:

| id | val1 | val2 | 
|------------------| 
| 1 | A1 | b1 | 
| 3 | A1 | b2 | 
| 4 | A2 | b1 | 
| 5 | A3 | b1 | 
| 7 | A3 | b2 | 
| 8 ... 
| 9 ... 
| 10 ... 

它是一種從表組選擇*,不同的(VAL2)由VAL1 ..

回答

2

您正在正確的軌道上使用GROUP BY

以下應該返回r esults按您的問題

SELECT MIN(id) AS id, val1, val2 
FROM YourTable 
GROUP BY 
     val1, val2 

擊穿

  • 使用該列的聚合函數,你不想組上。在我們的示例中,這是id列中的MIN聚合函數。這將返回各組的最低ID
  • GROUP BY所有列你想獲得的
一個 不同