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

ROLLUP修飾子を使用しているときに、MySQL ORDER BY句を使用して結果を並べ替えることはできますか?


実際、MySQLではROLLUPとORDER BYは相互に排他的であるため、クエリで両方を使用することはお勧めできません。ただし、それでも、ORDER BYでROLLUPを使用する場合、主な欠点は、要約行が計算された行と一緒にソートされることです。並べ替え順序によって要約行の位置が決まることにも注意してください。

要約行は、昇順の最初と降順の最後になります。次の例を検討して、より明確に理解してください-

mysql> Select * from (Select sr, SUM(PRICE) AS PRICE from ratelist GROUP BY sr WITH ROLLUP) AS Price ORDER BY Sr DESC;
+------+-------+
| sr   | PRICE |
+------+-------+
|    5 |   250 |
|    4 |   850 |
|    3 |  1005 |
|    2 |   630 |
|    1 |   502 |
| NULL |  3237 |
+------+-------+
6 rows in set (0.00 sec)

mysql> Select * from (Select sr, SUM(PRICE) AS PRICE from ratelist GROUP BY sr WITH ROLLUP) AS Price ORDER BY Sr ASC;
+------+-------+
| sr   | PRICE |
+------+-------+
| NULL |  3237 |
|    1 |   502 |
|    2 |   630 |
|    3 |  1005 |
|    4 |   850 |
|    5 |   250 |
+------+-------+
6 rows in set (0.01 sec)

  1. 行の値を合計して結果を並べ替えるMySQLクエリ?

    このために、ORDERBY句とともにGROUPBYを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1499    -> (    -> StudentName varchar(20),    -> StudentMarks int    -> ); Query OK, 0 rows affected (0.46 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert in

  2. ORDER BYフィールドを使用して、単一のMySQLフィールドでIDで並べ替える方法は?

    これには、ORDERBYFIELDを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Id int,    -> Name varchar(20)    -> ); Query OK, 0 rows affected (1.78 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(101,'