php - MYSQL 查询仅在不是特定日期时进行分组

标签 php mysql

我有一个跟踪点击的功能。它按天对它们进行分组,因此用户每天仅获得一次点击的积分。

客户希望在某个特殊的日子里,用户可以获得当天所有点击的积分。

我最初的想法是有两个功能。第一个函数提取所有不等于特殊日期的点击,并按天对它们进行分组。第二个函数仅提取特殊日期的点击次数。然后我将两者相加。

有没有办法编写查询,这样我就不必使用两个函数?

我当前提取不在给定日期的所有点击的查询是:

$sql = "SELECT DATE(timeclicked) AS Date, platform, COUNT(DISTINCT email) AS click_sum 
FROM trackclicks 
WHERE email='".$email."'
AND uid='".$uid."' 
AND action LIKE '%completed%'
AND date(timeclicked) !=  CAST('".$giving_date."' AS DATE)
GROUP BY platform, DATE(timeclicked) ";

添加

这是我最后一个问题的补充。查询有效并在 PHPMyAdmin 中显示此信息

Date          platform      click_sum
2015-10-03    Facebook      13
2015-10-04    Facebook      1
2015-10-03    Twitter       14
2015-10-04    Twitter       1

我的查询以此结束:

if ($result = $mysqli->query($sql)) {
    $response['sum'] = $result->num_rows;
}

这给了我 2 个,我需要它给我 14 个 facebook 和 15 个 twitter

最佳答案

这只是我在你的陈述中添加了一个 if 。无法测试,因为我没有数据库设置。希望对你有帮助。 if 只是检查并使用除该特殊日期之外的不同计数。

$sql = "SELECT DATE(timeclicked) AS Date, platform, IF(date(timeclicked) !=  CAST('".$giving_date."' AS DATE), COUNT(DISTINCT email), COUNT(email)) AS click_sum 
FROM trackclicks 
WHERE email='".$email."'
AND uid='".$uid."' 
AND action LIKE '%completed%'";

关于php - MYSQL 查询仅在不是特定日期时进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32955748/

相关文章:

php - laravel 中的 SQL 查询错误 属性 [id] 在此集合实例上不存在

php - 回显两个用户

php - 单个数组元素成为 Zend_Soap_Client 的对象

javascript - 如何从同一个类中的另一个方法检索最后插入的 id?

php - 关于加盐密码的问题

php - yii向第三张表插入数据

php - 回应 mysqli 查询

php - 关闭ajax调用的连接

php sql将来自不同数据库的多个表连接在一起

mysql - 更新与选择