首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在查询中标记x最大数字?

如何在查询中标记x最大数字?
EN

Stack Overflow用户
提问于 2017-06-21 10:46:37
回答 5查看 45关注 0票数 0

给出以下简单的表格:

代码语言:javascript
复制
Value
10
4
7
2
4
6

如何编写选择查询标记为x最大值。例如,如果标记了3个最大值,则在所需的查询输出下面。

代码语言:javascript
复制
Value   IsBiggest
10      true
4       false
7       true
2       false
4       false
6       true
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-06-21 11:08:15

一种可能的方式是:

代码语言:javascript
复制
(select value, 'true' as IsBiggest from simple_table order by value desc limit 3)
union all
(select value, 'false' as IsBiggest from simple_table order by value desc limit 3, 9223372036854775807)
票数 1
EN

Stack Overflow用户

发布于 2017-06-21 10:58:46

这应该能起作用:

代码语言:javascript
复制
SELECT test.value, 
       CASE WHEN X.isBiggest IS NULL THEN false ELSE true END isBiggest
FROM test 
    LEFT JOIN (
        SELECT value, true isBiggest
        FROM test 
        ORDER BY value DESC
        LIMIT 0,3
    ) X ON
    test.value = X.value

如果你只知道前3名:

代码语言:javascript
复制
SELECT value
FROM test 
ORDER BY value DESC
LIMIT 0,3
票数 1
EN

Stack Overflow用户

发布于 2017-06-21 11:13:04

你可以试试这个

代码语言:javascript
复制
SELECT tb1.value , IF(tb2.isBiggest ,1, 0) AS isBiggest FROM `sample_table` tb1 LEFT JOIN (SELECT value , 1 AS isBiggest
FROM  `sample_table` 
ORDER BY value DESC 
LIMIT 3
) tb2 ON tb1.value = tb2.value
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44673940

复制
相关文章

相似问题

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