如何按字段值出现的次数对记录集进行排序并按其排序

发布于 2024-11-07 18:14:14 字数 660 浏览 0 评论 0原文

我正在运行查询 select * from transactions 这为我提供了记录集,

ppno ---------name---------------amnt
1309 ---------Rajasekar----------12000
1210 ---------Mani     ----------21000
1309 ---------Sank     ----------90012
1100 ---------still    ----------12232
1309 ---------Jack     ----------23344

我想按相同 ppno 的出现次数对结果集进行分组,并根据出现次数对其进行排序。例如,我想要这样的东西。

ppno ---------name---------------amnt
1309 ---------Rajasekar----------12000
1309 ---------Sank     ----------90012
1309 ---------Jack     ----------23344
1210 ---------Mani     ----------21000    
1100 ---------still    ----------12232

I'm running a query
select * from transactions which gives me the recordsets

ppno ---------name---------------amnt
1309 ---------Rajasekar----------12000
1210 ---------Mani     ----------21000
1309 ---------Sank     ----------90012
1100 ---------still    ----------12232
1309 ---------Jack     ----------23344

I want to group the resultset by number of occurrences of the same ppno and sort it based on the number of occurrences. For example, I want something like this.

ppno ---------name---------------amnt
1309 ---------Rajasekar----------12000
1309 ---------Sank     ----------90012
1309 ---------Jack     ----------23344
1210 ---------Mani     ----------21000    
1100 ---------still    ----------12232

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

笑忘罢 2024-11-14 18:14:14
select t.*
from transactions t
order by (
    select count(1) from transactions t2 where t2.ppno = t.ppno
) desc, t.ppno desc
select t.*
from transactions t
order by (
    select count(1) from transactions t2 where t2.ppno = t.ppno
) desc, t.ppno desc
倒数 2024-11-14 18:14:14
SELECT t.ppno, t.name, t.amnt
    FROM (SELECT ppno, COUNT(*) AS ppnoCount
              FROM transactions
              GROUP BY ppno) c
        INNER JOIN transactions t
            ON c.ppno = t.ppno
    ORDER BY c.ppnoCount DESC, t.ppno
SELECT t.ppno, t.name, t.amnt
    FROM (SELECT ppno, COUNT(*) AS ppnoCount
              FROM transactions
              GROUP BY ppno) c
        INNER JOIN transactions t
            ON c.ppno = t.ppno
    ORDER BY c.ppnoCount DESC, t.ppno
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文