Php MySQIi选择计数和按计数排序

Php MySQIi选择计数和按计数排序,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我的表格如下所示这只是一个示例: id name title time ---------------------------- 1 name1 title1 1000 2 name1 title1 1001 3 name1 title1 1002 4 name2 title2 1003 5 name2 title2 1004 6 name3 title3 1005 7 na

我的表格如下所示这只是一个示例:

id    name    title    time
----------------------------
1     name1   title1   1000
2     name1   title1   1001
3     name1   title1   1002
4     name2   title2   1003
5     name2   title2   1004
6     name3   title3   1005
7     name4   title4   1006
8     name4   title4   1007
9     name4   title4   1008
10    name4   title4   1009
我想写一个SQL语句来选择每个名称的计数以及与之相关的信息。时间实际上是一个UNIX时间戳,但我只是为了简化这个问题而做了一些更改

// This is will get me the trending posts for only the last minute
$time_in_past = time() - 60;
$mysqli->query(
    "SELECT COUNT(`id`) FROM `trending`........WHERE `time` < '$time_in_past'"
);

我希望它们按每一个的计数排序,同时仍然得到10个结果。在本例中,只有4个结果。

您需要按名称对结果进行分组,然后再次将结果加入到表中:

从趋势自然连接中选择* 选择名称,将*计为cnt 从趋势 时间在哪里? 按名称分组 T 时间在哪里? 由t.cnt DESC订购
看起来你可以通过一个简单的小组逃脱,比如:

name: name4 count: 4 title: title4
name: name1 count: 3 title: title1
name: name2 count: 2 title: title2
name: name3 count: 1 title: title3
SELECT name, COUNT(*), title
FROM trending
GROUP BY name, title
ORDER BY COUNT(*) DESC;

由于您的姓名和标题看起来没有任何差异,因此将它们组合在一起将不会产生更多的行。按DESC排序会以相反的顺序给出计数。

对于您提供的输入表,它应该显示四行,因为我将两列分组,这两列具有不同的值。你能告诉我们你在哪里吗?如果你能做到这一点,请将其编辑到你的问题中,并ping我,这样每个人都可以看到更新。@Max:谢谢你对问题的更新,下一步最好是用小提琴!我想我很难理解如何输出10行,而在示例输出中只有4行。仍然得到10个结果应该是什么样子?这只是一个例子,我每分钟输入10万条记录。因此,将有4个以上的输出。sql查询仅显示1个结果。