我希望能够选择COUNT(每个日期的不同值,然后将它们加在一起。这是我的主要计数代码:
SELECT *,
COUNT(track.ip) AS tracker
FROM user,
track
WHERE track.user = $user
GROUP BY $user
ORDER BY tracker
LIMIT 1 我的数据库名是datein,以及它输入插入的日期和时间的方式。以下是代码:
Database column : datein
Database insert looks like : 2013-11-8 11:17:23我认为它应该类似于下面的代码:
SELECT *,
COUNT(DISTINCT track.user) AS tracker
FROM user,
track
WHERE track.user = $user
AND track.datein >= NOW() - INTERVAL BEGINNING DAY
GROUP BY $user
ORDER BY tracker
LIMIT 1 它应该看起来类似于上面的代码,但是应该有一种方法来选择它。如何选择每个日期的计数不同值?
发布于 2013-12-14 20:41:53
看起来您需要有两个列的结果集:不同用户的计数,日期。我不明白你的FROM条款,所以我跳过那部分。
让我们从包含用户和日期的结果集开始。
SELECT DISTINCT user,
TO_DATE(DATE_FORMAT(track.datein, '%Y-%m-%d')) datein
FROM whatever
WHERE whatever
AND whatever它将日期时间值压缩为简单日期,并为我们提供一个具有不同行的用户/日期结果集。
接下来,我们对其进行总结。
SELECT count(*) AS tracker
datein
FROM (
SELECT DISTINCT user,
TO_DATE(DATE_FORMAT(track.datein, '%Y-%m-%d')) datein
FROM whatever
WHERE whatever
AND whatever
) AS a
GROUP BY datein这将为您提供所需的结果集。
发布于 2013-12-14 20:32:00
从您的注释中,我猜您需要比较数据库中最老日期的datein,如果您希望这样做,可以使用MIN函数和HAVING子句的组合来进行比较。
SELECT *,
COUNT(DISTINCT track.user) AS tracker
FROM user,
track
GROUP BY $user
HAVING track.user = $user
AND track.datein >= MIN(datein)
ORDER BY tracker
LIMIT 1 https://stackoverflow.com/questions/20587784
复制相似问题