電子書籍の厳選無料作品が豊富!

mysql> select bang,avg(uria) from tb group by bang order by avg(uria) desc;
+------+-----------+
| bang | avg(uria) |
+------+-----------+
| A101 | 242.0000 |
| A104 | 137.0000 |
| A102 | 129.5000 |
| A107 | 87.0000 |
| A103 | 43.3333 |
+------+-----------+
と実行されました。

さて order by を省いてらどうなったか 以下です。

mysql> select bang,avg(uria) from tb group by bang avg(uria) desc;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'avg(uria) desc' at line 1

見事に構文エラーとなりました。
なぜ order by がないと構文エラーとなるのですか?

よろしくお願いたします。

質問者からの補足コメント

  • うれしい

    P150
    mysql> select * from tb order by uria;
    +------+------+------+
    | bang | uria | tuki |
    +------+------+------+
    | A103 | 12 | 6 |
    | A103 | 17 | 5 |
    | A102 | 54 | 5 |
    | A107 | 87 | 6 |
    | A104 | 93 | 5 |
    | A103 | 101 | 4 |
    | A104 | 181 | 4 |
    | A101 | 184 | 4 |
    | A102 | 205 | 6 |
    | A101 | 300 | 5 |
    +------+------+------+

      補足日時:2021/06/25 05:31
  • うれしい

    以上をグループ化する

    どうもすみません!
    また馬関な質問をしてしまい
     意外とその時は気づかないもので

    テーフ゛ル[tb] ではカラム[bang]をグループ化
    するためには
    select * from tb group by グループ化するカラム名;
    としないといけなかったですね!

      補足日時:2021/06/25 05:33
  • うれしい

    実行結果
    mysql> select * from tb group by bang;
    +------+------+------+
    | bang | uria | tuki |
    +------+------+------+
    | A101 | 184 | 4 |
    | A102 | 54 | 5 |
    | A103 | 101 | 4 |
    | A104 | 181 | 4 |
    | A107 | 87 | 6 |
    +------+------+------+
    社員番号である[bang]が1種類ずつ表示された

      補足日時:2021/06/25 05:33

A 回答 (2件)

SQLで検索する項目の順番を指定するからこそ指定した項目が昇順か降順で結果として出てくるのでしょう

    • good
    • 1
この回答へのお礼

今後ともよろしくお願いいたします。

お礼日時:2021/06/25 05:34

> order by を省いてらどうなったか



select bang,avg(uria) from tb group by bang order by avg(uria) desc;
からorder byを省くなら
select bang,avg(uria) from tb group by bang ;
です

「desc」までがorder by 句です
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!