如果我有这样的表和数据:
ID | Name | Group
1 Apple A
2 Boy A
3 Cat B
4 Dog C
5 Elep C
6 Fish C
我希望按照从小到大的Group总数对它进行排序,例如:A-2个记录,B-1个记录,C-3个记录,因此它将变为:
3 Cat B
1 Apple A
2 Boy A
4 Dog C
5 Elep C
6 Fish C
我试过了
$sql = "SELECT ID,Name FROM table ORDER BY COUNT(Group)";
但这只会为我返回一个结果。
有什么提示吗?谢谢。
您需要首先聚合数据,这可以使用GROUP BY子句完成:
SELECT Group, COUNT(*)
FROM table
GROUP BY Group
ORDER BY COUNT(*) DESC
关键字DESC允许您首先显示最高计数,默认情况下按ORDER BY升序排列,这将首先显示最低计数。
问题内容: 在SQL中按月将一列中的1-12连接到一堆计数的好方法是什么?…在SQL中 最终会像 编辑-基本上是一种获取我的月份列表/表格/任何内容的巧妙方法 问题答案: 许多方法…在上一份工作中对许多应用程序来说对我来说效果很好的一种方法是建立时间表。 然后,您可以将其日期字段放在startstamp和endstamp之间的timeframes表中进行联接。 这样可以很容易地拉出某个时间段或
问题内容: 有一个包含访问数据的表: 我想查找用户连续几天访问了我们的应用程序。因此,例如: 将返回: 有5条记录和两个间隔-3天(4月28日至30日)和2天(5月3日至4日)。 我的问题是如何找到用户连续访问该应用程序的最大天数(在示例中为3天)。试图在SQL文档中找到合适的函数,但没有成功。我想念什么吗? UPD: 谢谢您的回答!实际上,我正在使用vertica分析数据库(http://ver
问题内容: 我有以下查询,该查询基于逗号分隔的列表返回行 我希望此查询的结果以ID在列表中的顺序返回。SQL可以做到吗? 提前致谢 问题答案: 如果您需要输出以特定顺序显示,则需要使用服务器可以排序的内容来指定该顺序。不知道您要使用哪个引擎,一般的方案是创建一个临时表或使用行集构造函数将每个记录ID与所需的排序顺序配对。 例如(SQL Server)
问题内容: 我在SQL Server中有一个日志表,看起来像这样: 我想要的是一个结果列表,该列表表示每天处理了多少种不同的退款,并抛出了所有NULL。 我需要编写什么SQL才能产生这些结果? 问题答案: 我喜欢(MS SQL)中的这种方法:
问题内容: 这里有点复杂的SQL问题。 我目前有一个与多个字段匹配的SELECT语句,就像这样。 我想修改该语句,以使其使用OR而不是AND,从而选择与任何字段匹配的所有记录。 下一步是使用评分系统对结果进行排名。 所以… 匹配1-如果field2和field 3匹配,则得分为1400 匹配2-如果field1和field 4匹配,则得分将为1010 比赛1将在结果顶部。 对于使用SQL实现此目标
问题内容: 我有一个包含5个整数ID的表,并想添加一列以接受这些ID,对其进行排序并以类似于以下内容的方式将它们连接起来。 是否有使订购更快更轻松的功能?上帝禁止我必须手动编写订单。 问题答案: 您也可以使用(在线演示)