【问题标题】:How to select data order by count rows如何按行数选择数据顺序
【发布时间】:2016-04-29 04:58:08
【问题描述】:

如何按行数选择数据顺序

我想通过计数media_user_action 行来选择数据顺序,不知道如何在一个查询语法中做到这一点

例如
media_id 1 media_user_action 中的 3 行
media_id 2 media_user_action 中的 1 行

返回数据
media_id 1 然后 media_id 2

SELECT
  m.*
  FROM media m 
  LEFT JOIN media_user_action mua ON mua.media_id = m.id

// ORDER BY COUNT(mua.*)  count rows desc ?

媒体

id | 
1
2

media_user_action

id | media_id | user_id | type
1  | 1        | 1       | 0
2  | 1        | 13      | 0
3  | 1        | 15      | 1
4  | 2        | 16      | 0

【问题讨论】:

  • 为什么要投反对票?请告诉我
  • 我猜你的问题不清楚。你可能想多解释一下。
  • 问题不清楚。你能解释一下吗
  • 感谢回复我已更新,我想选择数据,然后按 media_user_action 表中的行数排序

标签: sql postgresql


【解决方案1】:

您可以在ORDER BY 子句中使用COUNT

SELECT m.id
FROM media m
LEFT JOIN media_user_action mua 
    ON mua.media_id = m.id
    AND mua.type = 0
GROUP BY m.id
ORDER BY COUNT(mua.id) DESC

如果要为media_user_action 添加附加条件,请在ON 子句中添加:

SELECT m.id
FROM media m
LEFT JOIN media_user_action mua 
    ON mua.media_id = m.id
GROUP BY m.id
ORDER BY COUNT(mua.id) DESC

【讨论】:

  • 感谢回复,`GROUP BY `是什么 ??如果我想按顺序使用计数,你的意思是我必须使用 group by 吗?
  • media 的所有列替换它。查看我的更新。
  • 如果我想计算 where type = 0 我应该把 type = 0 放在哪里
猜你喜欢
  • 2019-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多