php - mySQL SUM 和排序

标签 php mysql sql select

我们有一个表,每天插入一行并用数据更新它。

我有以下查询来从表中获取总点击次数:

SELECT SUM(`total_clicks`) AS clicks, `last_updated` FROM `reporting` WHERE `unique_id` = 'xH7' ORDER BY `last_updated` DESC

当从数据库中提取此信息时,它会提取正确的总点击次数,但 last_updated 字段来自第一行(昨天)而不是今天插入的新行。

我怎样才能获得最新的 last_updated 字段?

最佳答案

如果你想要最近的日期,使用MAX来选择它:

SELECT SUM(total_clicks) as clicks, MAX(last_updated) AS last_updated
FROM reporting
WHERE unique_id = 'xH7'

您的版本的问题是 ORDER BY 发生在 聚合之后,并且聚合从表中的任意行中选择非聚合列。

关于php - mySQL SUM 和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28619485/

相关文章:

sql - 如何向通过外键链接的两个表添加数据?

php - 在 laravel/lumen 中创建临时表并插入数据

php - 在 while ($row = mysql_fetch_array($result)) { PHP 中查找标题的变化

sql - ROW_NUMBER() 性能优化

C# asp.net 使用mysql数据库的值动态创建多个复选框

php - 对于每个查询结果,将其添加到表中并给出一个 ID php

sql - 300000 行的 DISTINCT ON 慢

php - 在具有 SELECT DISTINCT from($result) WHERE, ?possible 形式的后续查询中重用 MySQL 结果

PHPBB 3.0.8 奇怪的错误

python - SqlAlchemy 1.0.0 添加 'AND NULL' 以加入未定义外键的位置