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

2つの条件でカウントを取得するためのネストされたクエリ

    infectionをグループ化する必要があります および(ipipc )別の方法で、次のようなサブクエリを使用してそれらを結合します:

    SELECT t1.ip, t1.isp, t2.infection, t1.ipc, t1. ispc, t2.incount
    FROM
        (SELECT ip, isp, infection, COUNT(ip) as ipc, COUNT(isp) as ispc
        FROM (
           SELECT ip, isp, infection
           FROM tbl1
           UNION ALL
           SELECT ip, isp, infection
           FROM tbl2
           UNION ALL
           SELECT ip, isp, infection
           FROM tbl3
           )x
         GROUP BY ip, isp) t1
    JOIN
        (SELECT ip, isp, infection, COUNT(infection) as incount
         FROM (
           SELECT ip, isp, infection
           FROM tbl1
           UNION ALL
           SELECT ip, isp, infection
           FROM tbl2
           UNION ALL
           SELECT ip, isp, infection
           FROM tbl3
           )x
        GROUP BY ip, isp,  infection)t2
    ON t1.ip = t2.ip
    ORDER BY ip, isp, infection Desc
    

    このSQLFiddleを参照

    注: 次の理由により、目的の出力が間違っていると思います。

    1. Table3infectionはありません ip=6の場合 しかし、それはあなたの出力にあります
    2. infection other 出力に欠落しています(代わりにmalwareがあります )


    1. 2つの列の組み合わせに対する一意の制約?

    2. Textareaの行間の行間隔を削除するにはどうすればよいですか?

    3. 1つの列を除くSQLのすべての列を選択するにはどうすればよいですか?

    4. WAMPはmy.iniを無視します