-4

このクエリ...

SELECT a.*
FROM LicenseHistory a
JOIN (
    SELECT LicenseID, date as date, COUNT(DISTINCT IPAddress) as IPcount
    FROM LicenseHistory 
    WHERE (LicenseID= 24965)
    GROUP BY LicenseID,IPAddress,Date
    /*HAVING COUNT(DISTINCT IPAddress) > 1*/
) b ON (a.LicenseID = b.LicenseID) AND date(a.date) = date(b.date)
order by date desc, LicenseID desc

戻り値 ...

Date                lic     users   IP Address    country   Count
2013-05-14 13:44:56 24965   15  70.60.96.98 US  1455
2013-05-14 13:44:56 24965   15  70.60.96.98 US  1455
2013-05-14 11:50:34 24965   15  72.252.247.148  JM  111
2013-05-14 11:50:34 24965   15  72.252.247.148  JM  111
2013-03-29 07:40:37 24965   15  184.39.241.223  US  14

個別の IP のみを抽出するクエリは 123 のカウントを返すため (70.60.96.98 の場合)、count 列は明らかに正しくありません。このクエリはどのようにしてカウント 1455 に到達するのでしょうか? ライセンス 24965 が 2013 年 5 月 14 日に 70.60.96.98 から到着した回数を数えたいと思います。各日付のリスト内の各 IP についても同様です。

4

1 に答える 1

2

なぜそのような恐ろしく複雑なクエリが

SELECT count(*)
FROM LicenseHistory
WHERE (LicenseID = 24965) AND (IPAddress = '70.60.96.98')

トリックをしますか?

于 2013-06-04T15:50:17.013 に答える