在sql中选择只有一个不同列的多个列

时间:2015-05-22 09:19:50

标签: sql sql-server

我需要查询SQL数据库以查找一列的所有不同值,我需要另外两列中的任意值。例如,请考虑下表中有三列:CurrencyCodeBuyRateSellRate

CurrencyCode  BuyRate  SellRate
AUD           1.037    1.97
AUD           1.079    1.99
EUR           0.7288   0.8763
EUR           0.731    0.88
GBP           0.59     0.72

我希望检索具有不同CurrencyCode的一行,或者获取这三行:

CurrencyCode  BuyRate  SellRate
AUD           1.037    1.97
EUR           0.7288   0.8763
GBP           0.59     0.72

我尝试了SQL查询,如:

SELECT distinct CurrencyCode, BuyRate, SellRate FROM  Currencies

但是我没有得到所需的结果,因为它区分了所有列。

2 个答案:

答案 0 :(得分:7)

尝试使用GROUP BY子句和MIN功能,如下所示

SELECT CurrencyCode, MIN(BuyRate), MIN(SellRate)
FROM  Currencies
GROUP BY CurrencyCode 

答案 1 :(得分:2)

直到现在我发现这是根据Min(SellRate)

获取Min(BuyRate)的最佳答案

例如

    CurrencyCode    BuyRate   SellRate
       AUD           1.037     1.97
       AUD           1.079     1.89  //Changed from 1.99 to 1.89
       AUD           1.038     1.77  //New row added
       EUR           0.7288    0.8763
       EUR           0.731     0.88
       GBP           0.59      0.72

我预计AUDBuyRate的{​​{1}}行将为SaleRate1.037

1.97