sql - SQL-如何获得多列的最大值但我只有 1 行
问题描述
我试图获得只有 1 行(多列)的最大值。我看过的所有教程都是多行的。
怎样才能返回最大值(4943)?谢谢!
解决方案
显然,如果可能的话,这个表应该被规范化为一个不会发生这个问题的更合适的结构,例如
CREATE TABLE Test
(
[Id] INT IDENTITY(1, 1)
[Pop] INT,
[From] INT,
[To] INT
)
这将使解决方案变得微不足道。
但是,使用当前的结构,我们可以通过使用UNPIVOT 运算符来解决这个问题。假设您上面的表格被调用test
,并且有 4 个类似类型的列被称为p1, p2, p3, p4
. 然后以下查询将完成请求
SELECT MAX(pop)
FROM (SELECT * FROM test WHERE Id = [InsertIdHere]) AS TableFilteredToDesiredOneRow
UNPIVOT
(
pop
FOR ThePs IN (p1, p2, p3, p4)
) AS U
这消除了对任何容易出错的大型条件块的需要。
推荐阅读
- reactjs - 反应 this.context.router 没有定义
- swift - iOS模拟器运行一个应用程序需要1个多小时
- php - 当另一个 AJAX 函数成功时,我可以自动运行一个 AJAX 函数吗?
- groovy - Jmeter:如何通过代码禁用监听器(groovy)
- php - 如何在不安装在 Windows 10 上的情况下知道与特定 XAMPP 版本关联的 php 版本?
- django - 有没有办法让 Django DateField 中的 date_from 和 date_to 中的年份保持不变,并计算这两个字段的天数
- c - 如何对取决于其他数量的数组进行排序?
- mongodb - 无法使用 Kafka-Spark 结构化流向 MongoDB 发送数据
- c - 将动态分配的内存释放给我正确创建的结构
- wordpress - 如何在自定义登录页面上检查 wp_user 表中的用户?