如下所示,有很多城市和日子(下雨天的时期)。 我想找到最大天数,即使天数相同。 例如,如果最大天数为 3,并且有两个 3 天,那么我想打印出两行。
可能的输出是:
Auckland 2013-11-30 2013-11-30 5
Christchurch 2013-11-10 2013-11-50 4
如果只有 5 个城市,则可能有 5 行到 10 行,具体取决于天数的相同值。
我想使用SELECT
、IF
或CASE
、MAX
或Count
函数,因为这部分是完整、复杂的代码之一。
谢谢。
SQL 版本:
Microsoft SQL Server 2016 (RTM-GDR) (KB4019088) - 13.0.1742.0 (X64) Jul 5 2017 23:41:17 Copyright (c) Microsoft Corporation Developer Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 (Build 9600: ) (Hypervisor)
这是示例数据:
create TABLE practice10 (
station VARCHAR(50),
start_date DATE,
end_date DATE,
days INT,
)
INSERT INTO practice10 values ('Auckland','2013-10-5','2013-10-10', 5),
('Auckland','2013-10-15','2013-10-17', 2),
('Auckland','2013-10-20','2013-10-23', 3),
('Manchester','2015-9-1','2013-9-4', 3),
('Manchester','2013-10-3','2013-10-3', 0),
('Manchester','2013-10-20','2013-10-29', 9);
最佳答案
使用dense_rank()
订购天数。然后使用 top 1
获取最高值的日期
select
top 1 with ties *
from
myTable
order by dense_rank() over (partition by station order by days desc)
关于sql-server - 如何找到每个城市的最大天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49998659/