Php 按多列分组计数

Php 按多列分组计数,php,mysql,Php,Mysql,我需要找到我的网站统计,我想知道有多少独特的看法,在一天,从哪个层次的国家 我是这样做的 我需要从两列ip和tier中获取计数 列ip具有访问者的ip 列tier的值为int 1,2,3,4,5,分别用于第1、第2、第3、第4、第5级国家/地区 我需要获取唯一ip的计数,然后获取相应的层计数 $date1 = "4-3-2016 00:00:00"; $date2 = "5-3-2016 00:00:00"; $today = strtotime("midnight", strtotime($d

我需要找到我的网站统计,我想知道有多少独特的看法,在一天,从哪个层次的国家

我是这样做的

我需要从两列ip和tier中获取计数

列ip具有访问者的ip

列tier的值为int 1,2,3,4,5,分别用于第1、第2、第3、第4、第5级国家/地区

我需要获取唯一ip的计数,然后获取相应的层计数

$date1 = "4-3-2016 00:00:00";
$date2 = "5-3-2016 00:00:00";
$today = strtotime("midnight", strtotime($date1));
$nextday = strtotime("midnight", strtotime($date2));
$query="
SELECT 
COUNT(*) AS `unique`
FROM `stats` 
WHERE (`date`>='$today' AND `date`<'$nextday')  
GROUP BY `ip`, `tier` ORDER BY `tier` DESC;
";
我从中得到唯一的计数,我也需要得到层数

也有这种方法

//adding in main query to get tiers counts
COUNT(DISTINCT CASE WHEN `tier` = '1' THEN `ip` END) `tier1`
但是这很慢,如果可能的话,我想一组一组地做

请提出任何可行的方法


谢谢

这将为您提供各层的唯一IP数

SELECT tier, COUNT(ip) AS IP_COUNT FROM
(SELECT DISTINCT tier, ip 
FROM stats
WHERE <your conditions>) A
GROUP BY tier

IP总数将是所有IP总数的总和

这将为您提供各层的唯一IP数

SELECT tier, COUNT(ip) AS IP_COUNT FROM
(SELECT DISTINCT tier, ip 
FROM stats
WHERE <your conditions>) A
GROUP BY tier

IP总数将是所有IP计数的总和

按层尝试分组,ip@JuanCarlosOropeza仍然相同的结果显示示例数据和预期结果。但是直接在sql上,无需复杂地添加phpStore日期作为日期。请尝试按层分组,ip@JuanCarlosOropeza仍然相同的结果显示示例数据和预期结果。但是直接在sql上,不需要将phpStore日期添加为日期来复杂化。