0. 実験ユーザー「dicdic」でコネクトする。
SQL> conn dicdic/Oracle11g
接続されました。
SQL>
|
1. 【Group byのおさらい】
下のようなSQL文で、血液型ごとの最高点を表示できる。
SQL> SELECT 血液型,MAX(TOEIC) FROM TT01_学生 GROUP BY 血液型;
血液型 MAX(TOEIC)
---------- ----------
1 998
2 995
4 992
3 998
SQL>
|
2. group by に複数列を指定したらどうなるか?
下のようになります。かわりますかね?
18学科、の各血液型ごとに最高点を拾っています。
18学科×4血液型=72行がセレクトされます。
SQL> SELECT 血液型,学科コード,MAX(TOEIC) FROM TT01_学生 GROUP BY 血液型,学科コード;
血液型 学科コード MAX(TOEIC)
---------- ---------- ----------
4 2703 922
1 2273 998
3 2101 992
1 1350 967
1 1578 996
2 1521 980
4 2015 945
4 1635 959
1 2875 933
4 2789 972
1 1293 985
1 2187 967
2 1464 988
2 1350 956
2 2187 983
1 2445 991
3 2875 963
1 2531 994
4 1350 670
3 1578 994
1 2359 977
2 2359 928
1 2617 988
4 1578 969
2 2789 969
3 1350 992
2 1407 874
3 2359 998
2 1635 959
2 2273 912
2 2703 975
2 1293 995
1 2101 952
1 1521 978
3 1464 975
2 2875 942
4 1464 797
4 1407 936
1 2015 982
3 1407 989
3 1521 998
2 2445 995
3 2703 966
2 2015 978
4 1293 992
3 2531 966
4 2187 947
3 2789 989
4 2531 923
2 2617 991
3 2187 980
1 1635 983
3 1293 991
2 1578 937
3 2015 935
3 2617 974
1 1464 996
4 2101 952
2 2101 958
4 2617 979
4 1521 966
4 2445 741
1 2789 975
3 2273 949
1 2703 998
3 1635 892
1 1407 998
3 2445 986
4 2359 948
2 2531 944
4 2875 946
4 2273 923
72行が選択されました。
SQL>
|
3. ソートすると、もうちょい見やすくなりますかね。
SQL> SELECT 血液型,学科コード,MAX(TOEIC) FROM TT01_学生 GROUP BY 血液型,学科コード ORDER BY 学科コード,血液型;
血液型 学科コード MAX(TOEIC)
---------- ---------- ----------
1 1293 985
2 1293 995
3 1293 991
4 1293 992
1 1350 967
2 1350 956
3 1350 992
4 1350 670
1 1407 998
2 1407 874
3 1407 989
4 1407 936
1 1464 996
2 1464 988
3 1464 975
4 1464 797
1 1521 978
2 1521 980
3 1521 998
4 1521 966
1 1578 996
2 1578 937
3 1578 994
4 1578 969
1 1635 983
2 1635 959
3 1635 892
4 1635 959
1 2015 982
2 2015 978
3 2015 935
4 2015 945
1 2101 952
2 2101 958
3 2101 992
4 2101 952
1 2187 967
2 2187 983
3 2187 980
4 2187 947
1 2273 998
2 2273 912
3 2273 949
4 2273 923
1 2359 977
2 2359 928
3 2359 998
4 2359 948
1 2445 991
2 2445 995
3 2445 986
4 2445 741
1 2531 994
2 2531 944
3 2531 966
4 2531 923
1 2617 988
2 2617 991
3 2617 974
4 2617 979
1 2703 998
2 2703 975
3 2703 966
4 2703 922
1 2789 975
2 2789 969
3 2789 989
4 2789 972
1 2875 933
2 2875 942
3 2875 963
4 2875 946
72行が選択されました。
SQL>
|
|