sql >> データベース >  >> RDS >> Sqlserver

GROUPBY句のgroupbyリストに使用される式で集計またはサブクエリを使用することはできません

    T.Clientを含めない限り GROUP BYで 、集計関数内に含めることができるのはそのフィールドのみです。あなたの場合、そのフィールドでグループ化するとロジックが変更されるので、それは終わりです(そして、CASEステートメントでグループ化しようとする試みに関連しています)。代わりに、T.Clientをラップします 集計関数で。

    このように、グループは同じままであり、CASEステートメントのテストによると、行が1つしかない場合は、集計関数がどのような結果をもたらすかがわかります。

    SELECT
      T.Post,
      ClientCount = COUNT(*) AS ClientCount,
      Client      = CASE COUNT(*) WHEN 1 THEN MAX(T.Client) ELSE '[Clients]' END
    FROM
      MyTable T
    GROUP BY
      T.Post
    


    1. INDEXを使用しないJOINを使用したMySQLクエリ

    2. SQLSTATE [22007]:無効な日時形式:1292不正な日時値: '2019-03-31 01:52:25'

    3. PHPを使用してmysqlに日時を挿入する方法

    4. 結果セットではなく、1つのテーブルの行に制限があるSQLクエリ