【问题标题】:SQL ordering by rating/votesSQL 按评分/投票排序
【发布时间】:2015-02-23 01:31:12
【问题描述】:

我有如下SQL语句;

SELECT * FROM items WHERE votes > 4 ORDER BY (rating/votes) DESC

但不是只显示 WHERE 投票 > 4,我希望它显示所有记录,但优先考虑投票超过 4 的记录,仍然保持评级/投票分数

有什么建议吗?

【问题讨论】:

  • 删除where 子句。 where 子句用于过滤记录
  • 哪个 dbms? (即可以使用供应商特定的 SQL,或者只是简单的 ANSI SQL。)

标签: sql


【解决方案1】:

有点不清楚你要做什么,但我可能会对ORDER BY 子句有两个部分:

  • 首选四个以上的
  • 对这些进行排序

看起来像这样:

SELECT *
FROM items
ORDER BY IIF(Votes > 4, 0, 1),
         (rating/votes) DESC

基本上,我为是否有超过四票 (0) 分配一个数字,如果票数少于 (1) 则分配一个数字。由于 0 小于 1,所以票数大于 4 的将被优先拉取。

您可能不希望为此使用 WHERE 子句,因为它会过滤掉少于四票的任何人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-29
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 2020-11-18
    • 2016-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多