假設我有一張名爲的患者患者,在此表中有年齡段。我想知道誰是是最早的患者,最小的患者和其中的平均年齡。如何在同一個查詢中加入不同聚合函數的結果?
因此,考慮到表:
患者
名稱:文本
年齡:整數
- 誰是最古老的患者在分貝?
對於這個我做:
select name, age from patients
where age = (select max(age) as 'HighestAges' from patients)
group by name;
這樣我就能夠獲取每個病人taht具有較高的年齡(如果是一個以上的患者與結果相同的年齡) 。
- 誰是最年輕的患者?
那麼,我需要做的只是改變聚合函數,我會得到預期的結果,對吧?所以我做了:
select name, age from patients
where age = (select min(age) as 'LowestAges' from patients)
group by name;
我找回了所有年齡最小的病人。
- 所有患者的平均年齡是多少?
我只是選擇了平均年齡僅此而已:
select avg(age) as 'AverageAge' from patients;
到目前爲止好,現在,這裏的大問題:我怎麼證明這3個查詢的結果在一個單一的結果集?
我想要實現的是設置這樣的結果:
Name HighestAges Name LowestAges AverageAge
Rosemary 62 Tomalino 22 42
Mat 62 Rocat 22 42
你可能會想「一個愚蠢的結果是什麼呢?」你是對的,它看起來很愚蠢,這就是爲什麼我想這樣做,因爲它很愚蠢,沒有人會這樣做。我知道可能有成千上萬的做法,我想聽到(讀)所有的想法。我只是爲了好玩而努力,我正在學習SQL,所以我沒有經歷過這個過程。我學到了很多關於完整連接,外部連接,內部連接和自我連接的知識,我已經嘗試了大約兩天完成它們,但我無法自己完成,因此我正在尋求幫助。
預先感謝您。
我去掉了 「MySQL的」 標籤。 SQL Server和T-SQL基本上是同義詞,它們不是MySQL。 –