选择多列,其中一列中的数据无法重复

时间:2014-04-26 15:44:46

标签: mysql sql

好的,所以我是SQL的新手,而且我一直在试图弄清楚这一点,而不是真的在任何地方。 我有一个名为WaitingList的表,有3列 - Customer_Name,Holiday和Timestamp。我需要为每个不同的假期选择最早的时间戳,并为该假期安排客户的名字 所以,例如,如果我有......

CUSTOMER_NAME | HOLIDAY | TIMESTAMP   
Bill | Christmas | 2014-04-20  
Tom | Easter | 2014-04-19  
Kate | Christmas | 2014-04-24  

我想获得......的ResultSet。

CUSTOMER_NAME | HOLIDAY  
Bill | Christmas  
Tom | Easter  

但我无法确定适当的陈述。 任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:0)

ODER BY TIMESTAMP DESC为您提供最早的时间戳,并使用GROUP BY HOLIDAY唯一地获取每个不同的假期。

SELECT CUSTOMER_NAME ,HOLIDAY  FROM WaitingList GROUP BY HOLIDAY ORDER BY TIMESTAMP DESC 

答案 1 :(得分:0)

你可以这样做。在这里查看演示小提琴http://sqlfiddle.com/#!2/2bcf2/6

select wl.CUSTOMER_NAME,
wl.HOLIDAY
FROM WaitingList wl
INNER JOIN
(
SELECT HOLIDAY,MIN(TIMESTAMP) as earliest_booking 
FROM WaitingList 
GROUP BY HOLIDAY
 )tab
on wl.TIMESTAMP = tab.earliest_booking

结果是

enter image description here