Mysql 如何为每天选择不同的ip

Mysql 如何为每天选择不同的ip,mysql,count,distinct,Mysql,Count,Distinct,我有一个名为logvisit的表,其中的字段包括ip(varchar(30))和日期(datetime): ip date 1.1 2016-08-23 00:05:40 1.1 2016-08-24 00:05:15 1.1 2016-08-24 00:05:20 1.2 2016-08-22 00:01:00 1.2 2016-08-22 00:00:30 1.2 2016-08-23 00:01:00 编辑:我想按天选择所有不同的ip。一个IP可以有几天(如

我有一个名为logvisit的表,其中的字段包括ip(varchar(30))日期(datetime)

ip    date
1.1   2016-08-23 00:05:40
1.1   2016-08-24 00:05:15
1.1   2016-08-24 00:05:20
1.2   2016-08-22 00:01:00
1.2   2016-08-22 00:00:30
1.2   2016-08-23 00:01:00
编辑:我想按天选择所有不同的ip。一个IP可以有几天(如果用户连续三天来),一天可以有几个IP(因为我有多个用户)。我只是不想在同一天拥有相同的IP

预期产量(1 ip/1天):

我找到了这条线,于是我开始尝试:

SELECT 
  Convert(char(8), date, 112),
  count(distinct ip)
FROM logvisit
GROUP BY Convert(char(8), date, 112)

这给了我一个意外的“112附近的语法错误”,count(不同的ip)。

试试这样的方法:

SELECT id, DATE(`date`) AS day, COUNT(DISTINCT ip) AS total_visits
FROM logvisit
GROUP BY DATE(`date`);

您需要同时按
ip和日期进行分组

SELECT 
  DATE(date) AS d,
  count(ip)
FROM logvisit
GROUP BY d,ip
注意:
日期(时间戳/日期时间)
将提取日期部分


如果您想每天计算不同的ip,则可以使用以下查询:

SELECT 
  DATE(date) AS d,
  count(distinct ip) AS dayWiseDistinctIpCount
FROM logvisit
GROUP BY d
编辑:

要获得不同的
对,请执行以下操作:

SELECT 
 DISTINCT ip,
 DATE(date) AS day
FROM logvisit

对不起,我误导了你。你的答案在语法上是正确的,但我每天只有一个IP。我需要的是每天都有不同的IP,而不是每天都有一个IP(请参阅我在文章中的编辑)对不起,我误导了你。你的答案在语法上是正确的,但我每天只有一个IP。我需要的是每天都有不同的IP,而不是每天都有一个IP(请参阅我在文章中的编辑)
SELECT 
 DISTINCT ip,
 DATE(date) AS day
FROM logvisit
SELECT DISTINCT ip, DATE(DATE) as day FROM logvisit GROUP BY DATE(DATE),ip