【发布时间】:2019-07-15 22:23:34
【问题描述】:
我将如何创建一种方法来计算和显示排行榜,排行榜按值出现的次数组织? 示例数据库:
Bob
Joe
Bob
Bob
Joe
Sandra
然后桌子就是
Bob - 3
Joe - 2
Sandra - 1
我不确定这是如何完成的。谢谢!
【问题讨论】:
-
你使用 MySQL 吗?您正在寻找带有
GROUP BY和COUNT的基本SQL 查询。寻找更多。
我将如何创建一种方法来计算和显示排行榜,排行榜按值出现的次数组织? 示例数据库:
Bob
Joe
Bob
Bob
Joe
Sandra
然后桌子就是
Bob - 3
Joe - 2
Sandra - 1
我不确定这是如何完成的。谢谢!
【问题讨论】:
GROUP BY 和COUNT 的基本SQL 查询。寻找更多。
这样的查询是:
SELECT Name, COUNT(Name) AS CounterNames
FROM table_name
GROUP BY Name
ORDER BY CounterNames DESC
LIMIT 10
因为您需要名称并且还想计算名称,所以您选择了这些名称,但您不希望名称在数据库中是双倍的,因此您使用的是GROUP BY。
ORDER BY colum_name DESC 是您在 Counter 之后排序,并且首先具有最大值(DESC)。
LIMIT,因为您只想要前 10 名。
【讨论】:
$result = $conn->query("SELECT Name, COUNT(Name) AS CounterNames FROM table_name GROUP BY Name ORDER BY CounterNames DESC LIMIT 10"); while($row = $result->fetch_assoc()) { if ($result->num_rows > 0) { if($row = $result->fetch_assoc()) { $Top = $row['CounterNames']; } } echo $Top; } 但这只会回显 1。我认为我的查询在显示时是错误的
$top这个名字计算了多少次的值。
echo $row['Name']."-".$row['CounterNames'];