【问题标题】:How to fetch rows by descending order by appears number?如何按出现次数降序获取行?
【发布时间】:2011-05-21 09:46:22
【问题描述】:

我在问是否有可能按出现的行数的后代顺序对结果进行排序,一个澄清的例子: 这是我的桌子:

foo
foo1
foo
foo
foo1
foo2

这是我在查询(我猜不出来)调用后的结果:

foo 
foo 
foo 
foo1
foo1
foo2

因为 foo 出现 3 次,然后 foo1 出现 2 次,然后 foo2 只出现 1 次。

那么,使用的查询是什么样的?

感谢您的支持! 我的问候!

【问题讨论】:

    标签: php mysql sql descendant


    【解决方案1】:
    select t1.col from
    table as t1 inner join (
    select col,count(col) as num
    from table 
    group by col) as t2
    on t1.col = t2.col
    order by t2.num desc
    

    【讨论】:

    • 查询“select col,count(col) as num from table group by col”的这一部分为您提供了每个单个值及其出现次数(尝试运行它以查看结果)。由于您想要所有单条记录,因此您必须在您的表和我在上面写给您的查询之间建立连接。最后,您按照使用该查询找到的出现次数对结果进行降序排序。
    • @nick rulez,您的第一个查询达到了目的(没有“加入”),非常适合您!谢谢你!
    • 因为我实际上想要的是显示每一行的出现次数,你所做的事情!
    猜你喜欢
    • 2019-10-25
    • 2017-03-03
    • 1970-01-01
    • 2018-03-19
    • 2017-12-21
    • 2014-10-04
    • 1970-01-01
    • 2011-05-16
    相关资源
    最近更新 更多