という患者のテーブルがあり、このテーブルには、の年齢がの患者がいるとします。私は誰がが最も古いの患者、最も若いの患者であり、それらの平均年齢であるか知りたいです。だから、同じクエリで異なる集計関数の結果を結合するにはどうすればいいですか?
、テーブルがあるとします。
患者
名:テキスト
年齢:デシベル最古の患者である整数
- を?このため
私がやっている:私はすべての患者tahtを取得することができました
select name, age from patients
where age = (select max(age) as 'HighestAges' from patients)
group by name;
この方法で(結果は同じ年齢とともに複数の患者の場合)は、より高い年齢層を持っています。
- 最も若い患者は誰ですか?
私がする必要があるのは、集計関数を変更するだけで、期待される結果が得られるでしょうか?だから私はやった:
select name, age from patients
where age = (select min(age) as 'LowestAges' from patients)
group by name;
そして、私は最も年齢の低い患者を検索した。
- 全患者の平均年齢は?
私はちょうど平均年齢とより多くの何も選択します。私は、単一の結果セットにこれらの3つのクエリの結果を表示しますか:、今ここに大した
select avg(age) as 'AverageAge' from patients;
をこれまでのところは良いです?
何私が達成したいことは、このように設定した結果である:
Name HighestAges Name LowestAges AverageAge
Rosemary 62 Tomalino 22 42
Mat 62 Rocat 22 42
あなたは「愚かな結果がそれが何であるか?」考えるかもしれませんあなたは正しいです、それはそれが愚かであり、誰もこのようにしないので、それがそうであるように、それは私がそれをしたい理由です。何千もの方法があるかもしれないことを知っています。すべてのアイデアを聞きたい(読んでみたい)。私は楽しみのためにやっているだけです。私はSQLを学んでいますので、私はそれに満ちているわけではありません。私は、完全な結合、外部結合、内部結合、自己結合について多くのことを学びました。私は約2日間それらをすべて実行しようとしましたが、私は自分でそれを行うことができませんでしたので、私は助けを求めています。
ありがとうございます。
に参加私は "mysqlの" タグを削除しました。 SQL ServerとT-SQLは基本的に同義語であり、MySQLではありません。 –