MySQL では GROUP BY
          の使用を拡張しています。GROUP
          BY 部分にないカラムや計算を
          SELECT
          式で使用することができます。これは、そのグループの使用可能なあらゆる値を表します。この機能により、不要項目に対するソートやグループ化を行わないことで、パフォーマンスを向上させることができます。たとえば、次のクエリの場合、customer.name
          をグループ化する必要はありません。
        
mysql>SELECT order.custid,customer.name,MAX(payments)->FROM order,customer->WHERE order.custid = customer.custid->GROUP BY order.custid;
          標準 SQL では、customer.name を
          GROUP BY
          節に組み込む必要があります。MySQL では、非
          ANSI
          モードでの実行時にはこのカラム名は不要です。
        
          GROUP BY
          部分から取り除くカラムがグループ内で一意なものではない場合は、この機能を使用しないでください。予測不可能な結果になります。
        
          場合によっては、MIN() と
          MAX()
          を使用することによって、一意なものでないカラムの値を取り出すことができます。次の例では、sort
          カラムの値が最も小さいレコードの
          column 値が得られます。
        
SUBSTR(MIN(CONCAT(RPAD(sort,6,' '),column)),7)
See 項3.6.4. 「特定のフィールドのグループごとの最大値が格納されているレコード」。
          注意: MySQL バージョン
          3.22(またはこれより前のバージョン)を使用している場合や、SQL-99
          に従う必要がある場合、GROUP BY
          節と ORDER BY
          節では式は使用できません。この制約は式のエイリアスを使用することによって回避できます。
        
mysql>SELECT id,FLOOR(value/100) AS val FROM tbl_name->GROUP BY id,val ORDER BY val;
MySQL バージョン 3.23 では、次のようにします。
mysql> SELECT id,FLOOR(value/100) FROM tbl_name ORDER BY RAND();
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

