0

単一の時間範囲内の一意の IP アドレスの合計量を選択できます

SELECT COUNT(DISTINCT ip_address) as ip_addr, exec_datetime
FROM requests
WHERE exec_datetime >= NOW() - INTERVAL 1 DAY;

ip_addr exec_datetime
45      12/10/2012 5:21

単一のクエリで次の句の結果セットを返すにはどうすればよいですか...

WHERE exec_datetime >= NOW() - INTERVAL 1 DAY;
WHERE exec_datetime >= NOW() - INTERVAL 2 DAY;
...
WHERE exec_datetime >= NOW() - INTERVAL 14 DAY;

...結果セットは次のようになりますか?

ip_addr exec_datetime
45      11/26/2012 5:21
85      11/27/2012 5:21
130     11/28/2012 5:21
170     11/29/2012 5:21
...     ...
4

1 に答える 1

1

私は次のようなものを使用します:

SELECT
  COUNT(DISTINCT requests.ip_address) ip_addr,
  days.day
FROM
  (SELECT now()-INTERVAL 1 DAY as day UNION
   SELECT now()-INTERVAL 2 DAY UNION
   ...
   SELECT now()-INTERVAL 14 DAY) days
  INNER JOIN requests
  on requests.exec_datetime >= days.day
GROUP BY
  days.day
于 2012-12-11T06:59:20.567 に答える