SQL-选择一行中的最大值

约翰娜森

我似乎对此深感困惑,并且四处寻找找不到解决方案。

我有一个SQL表,它的第一行看起来像这样:

Name   Val1   Val2   Val3
John   1000   2000   3000

我需要做的是选择此行中的最大值,即 3000

显然,如果这些值在列而不是行中,则可以SELECT MAX(column) FROM table用来获取列中的最大值。在连续查找最大值时是否有与此等效的方法?

我也看了一下的用途PIVOTUNPIVOT,但我不认为他们是有用的我在这里..

我能够做到的唯一方法是创建一个临时表,并将每个值插入到单个列中,如下所示:

CREATE TABLE #temp (colvals float)
     INSERT INTO #temp (colvals)
          SELECT Val1 FROM table WHERE ID=1
         UNION
          SELECT Val2 FROM table WHERE ID=1
         UNION
          SELECT Val3 FROM table WHERE ID=1
--------------------------------------------
SELECT MAX(colvals) FROM #temp
--------------------------------------------
DROP TABLE #temp

但是我感觉这相当慢,特别是因为我的表中的列比上面显示的片段多得多。

有任何想法吗?

提前致谢。

埃里克

您可以通过建立列的引用表APPLY并使用本机MAX()

-- Sample Data
declare @data table (Name varchar(10), Val1 int, Val2 int, Val3 int, Val4 int, Val5 int, Val6 int)
insert @data values 
    ('John', 1000, 2000, 3000, 4000, 5000, 6000),
    ('Mary', 1, 2, 3, 4, 5, 6)


select Name, MaxValue from 
    @data 
    cross apply 
    (
        select max(value) as MaxValue 
        from 
            (values
                (Val1),(Val2),(Val3),(Val4),(Val5),(Val6) -- Append here
            ) t(value)
    ) result

SQL小提琴

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL选择最大值(COUNT)

来自分类Dev

SQL:使用最大值过滤行

来自分类Dev

在一个SQL查询中选择最大值和最小值

来自分类Dev

T-SQL中的按行最大值

来自分类Dev

仅选择SQL关系中的最大值?

来自分类Dev

从SQL选择中返回最大值

来自分类Dev

SQL查询以选择每组最大值的每一行

来自分类Dev

在SQL中,如何不选择列值与其上一行相同的行

来自分类Dev

SQL选择一行中具有最大值的行

来自分类Dev

SQL将一个表连接到第二个表中包含每组最大值的行的选择

来自分类Dev

在单个查询中从SQL的同一列中选择最大值和最小值

来自分类Dev

SQL:如何根据窗框(包括前面的行)中的最小/最大值的总和来选择列值

来自分类Dev

UPDATE列,其中不包含PL / SQL的oracle中每一行的最大值

来自分类Dev

如何选择SQL输出的最大值

来自分类Dev

在每个customerID SQL的特定行之前选择最小值和最大值

来自分类Dev

如何在SQL中为属性选择最大值的行

来自分类Dev

SQL选择从结果最大值中获取的位置

来自分类Dev

从列SQL中选择最大值

来自分类Dev

SQL选择最大值

来自分类Dev

选择列的SQL最大值

来自分类Dev

SQL如何基于另一列中的值在一行中多次选择列

来自分类Dev

SQL选择最大日期时间行保留另一行的值

来自分类Dev

如何在SQL Server中按标题每天选择一列中的最大值

来自分类Dev

根据列 SQL Server 中的最大值选择行

来自分类Dev

SQL Server中选择一行的最大值和最大值的列名作为两列

来自分类Dev

如何在 SQL 中获取一组行的最小值和最大值?

来自分类Dev

使用 subQuery SQL 选择最大值

来自分类Dev

如何编写SQL来选择具有每个组的最大值(值)的行?

来自分类Dev

Oracle SQL 用于比较列值并选择最大值在列 1 中的行

Related 相关文章

  1. 1

    SQL选择最大值(COUNT)

  2. 2

    SQL:使用最大值过滤行

  3. 3

    在一个SQL查询中选择最大值和最小值

  4. 4

    T-SQL中的按行最大值

  5. 5

    仅选择SQL关系中的最大值?

  6. 6

    从SQL选择中返回最大值

  7. 7

    SQL查询以选择每组最大值的每一行

  8. 8

    在SQL中,如何不选择列值与其上一行相同的行

  9. 9

    SQL选择一行中具有最大值的行

  10. 10

    SQL将一个表连接到第二个表中包含每组最大值的行的选择

  11. 11

    在单个查询中从SQL的同一列中选择最大值和最小值

  12. 12

    SQL:如何根据窗框(包括前面的行)中的最小/最大值的总和来选择列值

  13. 13

    UPDATE列,其中不包含PL / SQL的oracle中每一行的最大值

  14. 14

    如何选择SQL输出的最大值

  15. 15

    在每个customerID SQL的特定行之前选择最小值和最大值

  16. 16

    如何在SQL中为属性选择最大值的行

  17. 17

    SQL选择从结果最大值中获取的位置

  18. 18

    从列SQL中选择最大值

  19. 19

    SQL选择最大值

  20. 20

    选择列的SQL最大值

  21. 21

    SQL如何基于另一列中的值在一行中多次选择列

  22. 22

    SQL选择最大日期时间行保留另一行的值

  23. 23

    如何在SQL Server中按标题每天选择一列中的最大值

  24. 24

    根据列 SQL Server 中的最大值选择行

  25. 25

    SQL Server中选择一行的最大值和最大值的列名作为两列

  26. 26

    如何在 SQL 中获取一组行的最小值和最大值?

  27. 27

    使用 subQuery SQL 选择最大值

  28. 28

    如何编写SQL来选择具有每个组的最大值(值)的行?

  29. 29

    Oracle SQL 用于比较列值并选择最大值在列 1 中的行

热门标签

归档