php - 选择过去 7 天的前 3 名总和

标签 php mysql sum

我有以下片段表。

rating table

在评级表上方我正在保存vote的记录的product_iduser_id谁对此进行了评价product_id投票和rating_date .

现在我必须获取过去 7 天内(从当前日期开始)投票数最高的前 3 个 Product_id。

product_id 的最大投票总和记录的预期输出:-

1) product_id 8965 最大 403 vote过去 7 天的总和

2) product_id 4024 最大 36 vote过去 7 天的总和

3) product_id 2015年最多有5个vote过去 7 天的总和

这是过去 7 天的前 3 名最大投票总和,因此我已获取 produt_id根据此输出。

我尝试过以下代码片段,但它是错误的。

<?php
$query = mysql_query("SELECT SUM(vote) AS 'meta_sum', product_id 
FROM rating 
where rating_date >= curdate() - INTERVAL '7' DAY
    AND rating_date < curdate() - INTERVAL '1' DAY
GROUP BY product_id 
ORDER BY meta_sum DESC LIMIT 3") OR DIE(mysql_error());
while($row = mysql_fetch_assoc($query))
{
  $topexpert =$row["product_id"];
   $toprating =$row["meta_sum"];
  ?>

最佳答案

请替换为这些查询

SELECT SUM(vote) AS 'meta_sum', product_id 
FROM rating 
where rating_date BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW()
GROUP BY product_id 
ORDER BY meta_sum DESC LIMIT 3

关于php - 选择过去 7 天的前 3 名总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37964661/

相关文章:

java - 如何针对这种情况创建 hibernate 映射?

matlab - 计算矩阵的每条对角线之和

javascript - php代码加载http URL的页面源

php - 如何从 php 创建新的 MySQL 数据库用户

mysql - SQL "First relevant day"

mysql - 根据 resultID 创建违规发生频率的列表

vb6 - 使用vb6中的SUM函数对数组中的元素求和

php - 如何从我的循环中排除 MySQL 查询(限制不必要的查询)

php - 使用 php 从 MySql 获取一个整数

mysql - 嵌套 SELECT 计算两个表的平均值