LeetCode MySQL 585. 2016年的投资(窗口函数over(partition by xx))
生活随笔
收集整理的這篇文章主要介紹了
LeetCode MySQL 585. 2016年的投资(窗口函数over(partition by xx))
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
寫一個查詢語句,將 2016 年 (TIV_2016) 所有成功投資的金額加起來,保留 2 位小數。
對于一個投保人,他在 2016 年成功投資的條件是:
- 他在 2015 年的投保額 (TIV_2015) 至少跟一個其他投保人在 2015 年的投保額相同。
- 他所在的城市必須與其他投保人都不同(也就是說維度和經度不能跟其他任何一個投保人完全相同)。
輸入格式:
表 insurance 格式如下:
解釋
就如最后一個投保人,第一個投保人同時滿足兩個條件:
第二個投保人兩個條件都不滿足。他在 2015 年的投資 TIV_2015 與其他任何投保人都不相同。
且他所在城市的經緯度與第三個投保人相同。基于同樣的原因,第三個投保人投資失敗。
所以返回的結果是第一個投保人和最后一個投保人的 TIV_2016 之和,結果是 45 。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/investments-in-2016
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
# Write your MySQL query statement below select round(sum(TIV_2016), 2) TIV_2016 from insurance where (LAT, LON) not in (select LAT, LONfrom insurancegroup by LAT, LONhaving count(*) > 1)and TIV_2015 in(select TIV_2015from insurancegroup by TIV_2015having count(*) > 1)or 窗口函數
# Write your MySQL query statement below select round(sum(TIV_2016), 2) TIV_2016 from (select*,count(*) over(partition by TIV_2015) as cnt1,count(*) over(partition by LAT, LON) as cnt2frominsurance ) t where t.cnt1 > 1 and t.cnt2 <= 1我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode MySQL 585. 2016年的投资(窗口函数over(partition by xx))的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode MySQL 1270.
- 下一篇: LeetCode 1702. 修改后的最