[SQL] MySQL은 : 1 일 기준, 별개의 행을 카운트
SQLMySQL은 : 1 일 기준, 별개의 행을 카운트
내가 할 수있는 흥미로운 쿼리 I 필요가있다. 나는 (INET_ATON 사용) IP 주소 번호를 포함하는 INT의 열 및 타임 스탬프 열이있는 테이블이 있습니다. 나는 하루에 거기 고유 한 IP 주소 열의 수를 계산 할 수 있어야합니다. 즉, 각 하루에 얼마나 많은 별개의 IP 행입니다. IP 주소가 두 번 같은 날에 경우에 따라서, 예를 들어, 동일한 IP 주소가 그것에 대한 두 번째 수있을 것입니다이 계산됩니다 다른 날에 그러나 경우, 최종 카운트 1로 계산합니다.
PK | FK | ipNum | timestamp
11 | 404 | 219395 | 2013-01-06 22:23:56
7 | 404 | 467719 | 2013-01-06 22:23:41
8 | 404 | 4718869 | 2013-01-06 22:23:42
10 | 404 | 16777224 | 2013-01-06 22:23:56
5 | 404 | 1292435475 | 2013-01-06 22:23:25
12 | 404 | 1526990605 | 2013-01-06 22:23:57
6 | 404 | 1594313225 | 2013-01-06 22:23:40
4 | 404 | 1610613001 | 2013-01-06 22:23:23
9 | 404 | 1628635192 | 2013-01-06 22:23:55
1 | 404 | 2130706433 | 2013-01-06 21:29:38
2 | 407 | 2130706433 | 2013-01-06 21:31:59
3 | 407 | 2130706433 | 2013-01-06 21:32:22
해결법
-
==============================
1.
SELECT DATE(timestamp) Date, COUNT(DISTINCT ipNum) totalCOunt FROM tableName GROUP BY DATE(timestamp)
-
==============================
2.다음은 지난 7 일 동안 하루에 수를 얻을 것 방법은 다음과 같습니다
다음은 지난 7 일 동안 하루에 수를 얻을 것 방법은 다음과 같습니다
select count(*) as count, date(timestamp) as date from tablename where timestamp >= date_sub(curdate(), interval 7 day) group by date; +-------------+------------+ | count | date | +-------------+------------+ | #forThatDay | 2020-02-21 | | #forThatDay | 2020-02-22 | | #forThatDay | 2020-02-22 | | #forThatDay | 2020-02-23 | | #forThatDay | 2020-02-24 | | #forThatDay | 2020-02-25 | | #forThatDay | 2020-02-26 | +-------------+------------+ 7 rows in set (0.03 sec)
IPNUM의 열을 기준으로 그룹을 먼저 하루에 해당 열의 별개의 수를 얻을 수 있습니다 :
select count(*) as count, date(timestamp) as date from tablename where timestamp >= date_sub(curdate(), interval 7 day) group by ipNum, date;
-
==============================
3.
$log_date = date('Y-m-d H:i:s'); $log_date = date('Y-m-d H:i:s', strtotime($log_date.' -1 hour')); SELECT ipNum, COUNT(ipNum), COUNT(DISTINCT ipNum), DATE(timestamp), timestamp FROM tableName WHERE `timestamp` > '".$log_date."' GROUP BY ipNum ORDER BY DATE(timestamp) DESC
이 계약은 귀하에게 결과 LIKE을 줄 것이다
ip TIME COUNTIPS 11.237.115.30 2018-01-27 19:13:51 1 21.744.133.52 2018-01-27 19:14:03 1 44.628.197.51 2018-01-27 19:48:12 14
from https://stackoverflow.com/questions/14191021/mysql-count-the-distinct-rows-per-day by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 스크립트 SQL은 특정 테이블에 대한 외부 키를 찾는 방법은? (0) | 2020.07.03 |
---|---|
[SQL] 변수를 사용하는 경우 SQL Server는 천천히가는 이유는 무엇입니까? (0) | 2020.07.03 |
[SQL] PostgreSQL의 테이블 변수 (0) | 2020.07.03 |
[SQL] 한 시스템에서 다른 시스템으로 SQL 서버 2008 R2 데이터베이스를 복사하는 방법 (0) | 2020.07.03 |
[SQL] 각 그룹에 대해 특정 열에서 모든 문자열을 연결하는 방법 (0) | 2020.07.03 |