MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

GROUP BYリストの列名と「WITHROLLUP」修飾子を使用して明示的な並べ替え順序(ASCまたはDESC)を使用すると、サマリー出力にどのような影響がありますか?


GROUP BYリストの列名と「WITHROLLUP」修飾子を使用して明示的な並べ替え順序(ASCまたはDESC)を使用する場合、ROLLUPによって追加された要約行は引き続き並べ替え順序に関係なく、計算元の行の後に表示されます。

デフォルトの並べ替え順序が昇順であることがわかっているため、以下の例では、明示的な並べ替え順序を使用しない場合、出力は次のようになります-

mysql> Select sr, SUM(Price) AS Price from ratelist Group by sr with rollup;
+-----+-------+
| sr  | Price |
+-----+-------+
|  1  |   502 |
|  2  |   630 |
|  3  |  1005 |
|  4  |   850 |
|  5  |   250 |
|NULL |  3237 |
+-----+-------+
6 rows in set (0.00 sec)

並べ替え順序をDESCとして定義した後、上記の同じクエリから次のように出力を取得します-

mysql> Select sr, SUM(Price) AS Price from ratelist Group by sr DESC with rollup;
+-----+-------+
| sr  | Price |
+-----+-------+
|  5  |   250 |
|  4  |   850 |
|  3  |  1005 |
|  2  |   630 |
|  1  |   502 |
|NULL |  3237 |
+-----+-------+
6 rows in set (0.00 sec)

出力から、ソート順が降順に変更されているにもかかわらず、要約行が計算元の行の後に表示されていることがわかります。


  1. MySQLでASC順にレコードのリストのみを表示する

    レコードのリストを特定の順序で表示するには、条件を設定してORDERBYを使用する必要があります。これには、ORDERBYCASEステートメントを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable2039    -> (    -> Name varchar(20)    -> ); Query OK, 0 rows affected (0.62 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert

  2. 明示的な実装とは何ですか?C#のインターフェイスでいつ使用するのですか?

    クラスが同じ署名を持つメンバーを含む2つのインターフェースを実装する場合、そのメンバーをクラスに実装すると、両方のインターフェースがそのメンバーを実装として使用します。 インターフェイスメンバーを明示的に実装することは可能です。つまり、インターフェイスを介してのみ呼び出され、そのインターフェイスに固有のクラスメンバーを作成します。 例 interface ICar{    void display(); } interface IBike{    void display(); } class ShowRoom : ICar, IBike{