データベース HAVING COUNT () の使用法

序章:

HAVING COUNT() は、グループ化された結果をフィルタリングするために SQL で使用されるキーワードであり、通常は GROUP BY と一緒に使用されます。HAVING COUNT() の機能は、グループ化された結果をフィルターし、条件を満たすグループ化された結果のみを保持することです。

Have は、グループ化を行わない Where と似ています。グループ化がある場合、Where はグループ化する前にコンテンツをフィルターし、グループ化した後にコンテンツをフィルターします。集計関数はhaveで書くことができます。

       

 例証します:

       メインテーブル CUSTOM_CABINETS 注文テーブル

       サブテーブル CUSTOM_CABINETS_BRAND ブランド テーブル

1. すべてのデータの関連付けクエリ

注:内部結合は 2 つのテーブル内の同じデータをクエリするために使用されます。ここでは左結合を使用して問題を再現します。 

2. 関連付けクエリとグループ化によるグループ化

      ブランド名のメイン table.BRAND_NAME と  ブランド コードの サブ table.BRAND_CODE   をグループ化すると、クエリの後に空のデータの行があり、メイン行にブランド コード(コードはブランド名に対応する)行がないことを示します。テーブル データなので、グループ化されたデータに NULL があることがわかります。

わかりやすくするために、メインテーブルの count(a.BRAND_CODE) をカウントします。

 

 

 3. アソシエーションクエリと HAVING COUNT 関数

注意すべき重要な点:   グループ化した後、count(*) > 0 を使用してフィルターとクエリを実行します。

HAVING COUNT(a.BRAND_CODE) > 0 NULL を除く、テーブル内の目的のデータをフィルターします。

要約:  

  • ① INNER JOIN を使用して 2 つのテーブルを結合します。結合条件はカウントする必要がある列です。
SELECT column1, column2, ..., COUNT(column_name)  
FROM table1  
INNER JOIN table2 ON table1.column_name = table2.column_name  
GROUP BY column1, column2, ...  
HAVING COUNT(column_name) > 0;
  • ② GROUP BY句にカウントしたい列を指定し、COUNT()関数でカウントします。
SELECT column1, column2, ..., COUNT(column_name)  
FROM table1  
GROUP BY column1, column2, ...  
HAVING COUNT(column_name) > 0;
  • ③HAVING COUNT()句に集計条件を指定し、集計結果が0以上のグループ化結果のみを保持します。
SELECT column1, column2, ..., COUNT(column_name)  
FROM table1  
GROUP BY column1, column2, ...  
HAVING COUNT(column_name) > 0;

おすすめ

転載: blog.csdn.net/weixin_50002038/article/details/127532661