我们有一个表,每天插入一行并用数据更新。
我有以下查询来获取表中的总点击次数:
SELECT SUM(`total_clicks`) AS clicks, `last_updated` FROM `reporting` WHERE `unique_id` = 'xH7' ORDER BY `last_updated` DESC
从数据库中提取此信息时,它会提取正确的总点击次数,但last_updated字段来自第一行(昨天),而不是今天插入的新行。
如何获取最新的last_updated字段?
答案 0 :(得分:2)
如果您想要最近的日期,请使用MAX
选择它:
SELECT SUM(total_clicks) as clicks, MAX(last_updated) AS last_updated
FROM reporting
WHERE unique_id = 'xH7'
您的版本存在的问题是{<1}}在聚合后发生,而聚合会从表格中的任意行中选择非聚合列。
答案 1 :(得分:1)
如果您每天只有一行,那么您不需要sum()
。以下是否符合您的要求?
SELECT `total_clicks` AS clicks, `last_updated`
FROM `reporting`
WHERE `unique_id` = 'xH7'
ORDER BY `last_updated` DESC
LIMIT 1;
您的查询是一个汇总查询,它会累加表格中的所有点击次数。因为它只返回一行,order by
没有做任何事情。