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

ユニオンを持つ複数のテーブルからカウント依存行を選択します

    クエリが複雑になりすぎています。groupbyを使用して、グループごとのカウントを取得してください。更新:4aテーブルと4bテーブルの両方に同じキーがあり、それらを1つの出力に要約する必要があるため、使用するサブクエリに応じて包括的な合計またはカウントが必要です

    select kd_hari, hari, sum(rowcount) as rowcount from
        (select a.kd_hari,hari, count(a.kd_hari) as rowcount
        from 4a a,tbhari h where a.kd_hari=h.kd_hari and kd_ruang in('L','P')
        group by a.kd_hari,hari
        union all
        select b.kd_hari,hari, count(b.kd_hari) 
        from 4b a,tbhari h where a.kd_hari=h.kd_hari and kd_ruang in('L','P')
        group by a.kd_hari,hari) as t
    group by kd_hari,hari
    

    または、サブクエリで4aと4bをすべてユニオンと組み合わせて、tbhariテーブルで結合します。サブクエリには両方のテーブルのすべての行が含まれるため、サブクエリでcount()とgroupbyを使用できます。

    ただし、サンプルコードを記述した方法では、テーブルを結合するときに既存のインデックスを利用できます。最初にそれらをunionと組み合わせてから結合を行うと、結合にインデックスは使用されません。




    1. mysqlで検索するときに大文字と小文字の違いを無視するにはどうすればよいですか?

    2. MYSQLは同じ行を2回挿入しないようにします

    3. FILE_NAME()を使用して、SQLServerで指定されたファイルIDの論理ファイル名を返します

    4. オフライン再編成ウィザードの使用