首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL中使用ORDER BY子句

问在SQL中使用ORDER BY子句
EN

Stack Overflow用户
提问于 2013-02-09 02:15:11
回答 3查看 81关注 0票数 0

是否可以使用一个关键字,按照结果在数据表中出现的次数对SELECT查询中的结果进行排序?

MySQL:

代码语言:javascript
复制
  SELECT * FROM interests ORDER BY (keyword)

表值如下:

代码语言:javascript
复制
hiking
running
swimming
hiking
photography
swimming
hiking

如果它们的返回顺序是基于表中每个值出现的频率,那么它将是:

代码语言:javascript
复制
hiking
hiking
hiking
swimming
swimming
running
photography

如果没有一个特定的关键字,我如何用SQL实现这一点?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-09 02:16:44

代码语言:javascript
复制
SELECT COUNT(keyword) AS cnt, keyword
FROM interested
GROUP BY keyword
ORDER BY cnt

将按升序给出每个关键字的计数。但是你不会有3个徒步旅行项目,2个游泳项目,等等。只有hiking,3、swimming,2等。

票数 5
EN

Stack Overflow用户

发布于 2013-02-09 02:18:24

代码语言:javascript
复制
SELECT  a.*
FROM    interests a
        INNER JOIN 
        (
            SELECT  keyword, COUNT(*) totalCount
            FROm    interests
            GROUP BY keyword
        ) b ON a.keyword = b.keyword
ORDER   BY b.totalCount DESC

票数 4
EN

Stack Overflow用户

发布于 2013-02-09 03:55:43

代码语言:javascript
复制
    SELECT 
    t1.*,count(t1.keyword) 
    FROM 
    interests AS t1 INNER JOIN (
     SELECT 
            keyword,count(*) totalcount 
      FROM 
            interests GROUP BY keyword
      )t2 
ON t1.keyword=t2.keyword group by t1.keyword 
   ORDER BY t2.totalcount DESC

Sql Fiddle demo

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14778815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档