SQL - 获取大多数投票的日期

时间:2013-08-12 16:04:43

标签: mysql sql

SQL新手,请原谅noob问题

vote_id     vote_date
1           2013-08-11
2           2013-08-12
3           2013-08-12
4           2013-08-12
5           2013-08-13
6           2013-08-14

我想选择最受欢迎的日期(2013-08-12)以及该日期投了多少票(3)。

1 个答案:

答案 0 :(得分:3)

这是获得指定结果的一种方法:

SELECT v.vote_date
     , COUNT(1) AS votes_cast
  FROM votes v
 GROUP
    BY v.vote_date
 ORDER
    BY votes_cast DESC
     , v.vote_date DESC
 LIMIT 1

GROUP BY子句允许将行组聚合到一行中。在此示例中,我们“分组”具有相同值vote_date的行。 COUNT函数是一个聚合函数,它对一个组中的所有行进行操作,并返回该组的单个值。 (COUNT从零开始,对于表达式具有非空值的每一行,都会将一个添加到计数中。)在此查询中,您还可以使用SUM(1)代替COUNT(1)

ORDER BY返回指定序列中的行。在此示例中,我们希望COUNT具有最高值的行。因此,我们按降序对此表达式上的行进行排序。如果两个或多个vote_date具有相同的“最高”计数,我们将首先返回最新的vote_date。

LIMIT n子句限制返回的行数,因此只返回n行。

(这不是唯一会返回指定结果的SQL语句,它只是一个例子。)