Sélectionnez plusieurs colonnes avec une seule colonne distincte en SQL

J'ai besoin d'interroger une database SQL pour find toutes les valeurs distinctes d'une colonne et j'ai besoin d'une valeur arbitraire d'une autre deux colonnes. Par exemple, considérons le tableau suivant avec trois colonnes: CurrencyCode , BuyRate et SellRate :

 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 

Je souhaite récupérer une ligne avec CurrencyCode distinct, en obtenant peut-être ces trois lignes:

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

J'ai essayé ma requête SQL comme:

 SELECT distinct CurrencyCode, BuyRate, SellRate FROM Currencies 

Mais je n'obtiens pas le résultat escompté car il regroupe toutes les colonnes.

Essayez avec la clause GROUP BY et la fonction MIN comme ci-dessous

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

Jusqu'à présent, j'ai trouvé que c'est la meilleure réponse pour get Min(SellRate) sur la base de Min(BuyRate)

par exemple.

  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 

Ici, j'attends des lignes AUD pour BuyRate et SaleRate sera 1.037 et 1.97

 select CurrencyCode, Min(BuyRate) as BuyRate, (select top 1 SellRate from Currencies as C where C.CurrencyCode=Currencies.CurrencyCode and C.BuyRate= Min(Currencies.BuyRate) order by SellRate) as SellRate from Currencies group by CurrencyCode