2013-10-12 76 views
3

選擇不同的值,以便我想無論是s.notime或者無論如何

通過遞減

s.no  customer_id   time 
1  3     100001 
2  2     100002 
3  4     100003 
4  3     100004 
5  2     100005 

選擇不同customer_id爲了我使用

select distinct(customer_id) from table_name order by time DESC 

和它給的答案爲4 2 3但正如我想它應該是2 3 4

+0

它是由你選擇字段下令最佳實踐來完成。如果你想要它是'2 3 4',那麼'ORDER BY number'。在你的情況下,你正在列出DISTINCT號碼。如何知道該排序使用哪個時間值? – AgRizzo

+0

使用'按號碼排序' –

+0

@AgRizzo我認爲他想說的是前三條記錄被選中(他們的數字是4,2,3),但是他想要選擇最後三條記錄(它們的編號是2,3,4 ) – BackSlash

回答

12

所以您的問題聲明「你想CUSTOMER_ID的列表,從他們的最大的時間價值在下降排序」,對不對?

SELECT customer_id, MAX(time) 
FROM table_name 
GROUP BY customer_id 
ORDER BY MAX(time) DESC 
+0

y working than,thanx很多 – user1900054

+0

謝謝!很棒! – tomaszbak

0

你要做的第二選擇是這樣的:

SELECT 
    `number` 
FROM 
(
    SELECT 
     DISTINCT(number) AS number 
    FROM 
     `table_name` 
    ORDER BY 
     `time` DESC 
) AS `temp` 
ORDER BY 
    `number` ASC 
0

它可以通過第二個查詢

$query = "SELECT * 
      FROM (SELECT customer_id 
       FROM table_name     
       ORDER BY customer_id DESC) as rows    
      GROUP BY customer_id";