ORDER BY で強化された GROUP_CONCAT 関数
SQL では、GROUP_CONCAT 関数は、特定の行グループの列の値を連結するために使用されます。 。ただし、連結された値の順序は通常予測できません。
課題:
次の表を考えてみましょう:
client_id | views | percentage |
---|---|---|
1 | 6 | 20 |
1 | 4 | 55 |
1 | 9 | 56 |
1 | 2 | 67 |
1 | 7 | 80 |
1 | 5 | 66 |
1 | 3 | 33 |
1 | 8 | 34 |
1 | 1 | 52 |
GROUP_CONCAT 操作、データはconsolidated:
SELECT li.client_id, group_concat(li.views) AS views, group_concat(li.percentage) FROM li GROUP BY client_id;
Output:
client_id | views | percentage |
---|---|---|
6,4,9,2,7,5,3,8,1 | 20,55,56,67,80,66,33,34,52 |
ただし、ビューの順序は必須ではありません。連結された値を昇順に整理するには、ORDER BY 句を GROUP_CONCAT 関数内に組み込むことができます。
SELECT li.client_id, group_concat(li.views ORDER BY li.views) AS views, group_concat(li.percentage ORDER BY li.views) FROM li GROUP BY client_id
変更されたクエリは次の出力を返します。
client_id | views | percentage |
---|---|---|
1 | 1,2,3,4,5,6,7,8,9 | 52,67,33,55,66,20,80,34,56 |
この変更により、ビュー列が各クライアント グループ内で昇順に配置されていること。
以上がSQL の GROUP_CONCAT 関数内で連結された値を順序付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。