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

SQLでcase条件文との合計がどのように機能するか

    おそらく、これはあなたが理解するのに苦労している部分です:

      select deptno,
             sum(case when jobname = 'Analyst' then 1 else 0 end) as numAnalysts
      from employees
      group by deptno
    

    これは本当に単純な集計クエリです。クエリの実行内容は次のとおりです。

    • employeesの各行を見てください
    • jobnameの場合 'Analyst'です 次に、1の値を割り当てます (これはcaseです ステートメント. Otherwise, assign a value ofの値を割り当てます 0`。
    • 部門ごとに集計し、計算したばかりの値を合計します。これには、アナリストの数を数える効果があります。

    case 値を返す式です。 sum() グループごとにその値を合計するだけです。



    1. INSERT ... ON DUPLICATE KEY(何もしない)

    2. MySqlの大きなテーブルと分析

    3. なぜTRANSACTION/COMMITはPHP/MySQL(InnoDB)でパフォーマンスを大幅に向上させるのですか?

    4. PHP MySQLを使用したカテゴリ階層(順番に)