mySQL语句获取最后一条记录

标签 mysql sql

我正在尝试获取每个 FANOF_ID 的总票数(例如:我)。问题是粉丝每天可以为同一个 FANOF_ID 投票(例如:David Bowie RIP)

所以每天我都可以投票给大卫·鲍伊作为我最喜欢的歌手

ID  CREATED    FAN_ID FANOF_ID
15  2016-01-24 3      3
16  2016-01-25 3      3
17  2016-01-25 2      3

因此,从该示例中,我应该得到 FANOF_ID (3) 的“总计”2 个粉丝的结果

这是我实际的 SQL

SELECT
  distinct `fans_fanofvote`.`fan_id`,
  COUNT(`fans_fanofvote`.`fanof_id`) AS `total`
FROM `fans_fanofvote`
GROUP BY `fans_fanofvote`.`fanof_id`
ORDER BY `total` DESC

但它返回 3 条记录,即使我在 fan_id 上使用不同的,它也不会工作。如何让 mySQL 对 FAN_ID 执行不同操作

My SQL 应该返回这样的一条记录:

FANOF_ID TOTAL
3        2

最佳答案

您需要COUNT(DISTINCT)。但是,您必须小心计算的内容 (fan_id) 以及通过 (fanof_id) 聚合的内容:

SELECT fov.fanof_id,
       COUNT(DISTINCT fov.fan_id) AS total
FROM fans_fanofvote fov
GROUP BY fov.fanof_id
ORDER BY total DESC;

请注意,表别名使查询更易于阅读。除非确实需要,否则不要使用反勾。

关于mySQL语句获取最后一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35046513/

相关文章:

mysql - 仅针对 "limit and offset"在 MySQL 中分组

sql - MySQL,在分组前排序

mysql - MySQL : Errorno 150 是什么原因

php - 如何从多个索引查询中获取 [id] 索引

php - 使用 AJAX 和 PHP 从 MYSQL 检索 ID 号,然后使用检索到的 ID 进行 hashchange URL

java - 将 mysql 查询转换为 hibernate 查询

mysql - 两个相似用户的数据库架构

mysql - 如何保存由其他两个表组成的临时表的位置?

mysql - 在 MySQL 中选择不为空的 DISTINCT

php - MySQL '=' 运算符没有返回结果