ホームページ > データベース > mysql チュートリアル > 「GROUP BY」句で NULL 値を処理しながら SQL データをグループ化するにはどうすればよいですか?

「GROUP BY」句で NULL 値を処理しながら SQL データをグループ化するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-04 02:26:40
オリジナル
796 人が閲覧しました

How Can I Group SQL Data While Handling NULL Values in the `GROUP BY` Clause?

SQL での NULL 値を含むデータのグループ化

GROUP BY 関数を使用したデータのグループ化は、データを要約して取得するための強力な手法です。ただし、場合によっては、NULL 値を無視してデータをグループ化することが望ましい場合があります。これは、GROUP BY 句を巧みに操作することで実現できます。

指定されたクエリでは、GROUP BY を使用して祖先フィールドごとに行がグループ化されます。ただし、複数の行で ancestor が NULL の場合、それらはグループ化され、1 行のみが返されます。この問題を解決するには、IFNULL 関数を使用するトリックを使用できます。

クエリを次のように変更できます。

SELECT `table1`.*, 
    IFNULL(ancestor,UUID()) as unq_ancestor
    GROUP_CONCAT(id SEPARATOR ',') AS `children_ids`
FROM `table1` 
WHERE (enabled = 1) 
GROUP BY unq_ancestor
ログイン後にコピー

この改訂されたクエリでは、IFNULL を使用して一意のクエリを割り当てます。識別子 (UUID) を祖先フィールドの NULL 値に変換します。これにより、グループ化に使用される unq_ancestor という一意の列が作成されます。その結果、NULL 祖先値を持つ行を含むすべての行が個別にグループ化され、必要なデータをすべて取得できるようになります。

以上が「GROUP BY」句で NULL 値を処理しながら SQL データをグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート