Growth ๐ŸŒณ/Practice ๐Ÿ’ป

[LeetCode] 585. Investments in 2016

์ธ” 2023. 5. 9. 14:48

๐Ÿ“ข ๋ณธ ํฌ์ŠคํŒ…์— ํ™œ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ๋ฌธ์ œ ๋ฐ ์ž๋ฃŒ ์ถœ์ฒ˜๋Š”

       ๋ฆฌํŠธ์ฝ”๋“œ Problems, https://leetcode.com/problemset/all/์ž„์„ ๋ฐํž™๋‹ˆ๋‹ค.


โ–  ๋ฌธ์ œ

https://leetcode.com/problems/investments-in-2016/description/

 

Investments in 2016 - LeetCode

Can you solve this real interview question? Investments in 2016 - Table: Insurance +-------------+-------+ | Column Name | Type | +-------------+-------+ | pid | int | | tiv_2015 | float | | tiv_2016 | float | | lat | float | | lon | float | +-------------

leetcode.com

Table : Insurance

Write an SQL query to report the sum of all total investment values in 2016 tiv_2016, for all policyholders who:

  • have the same tiv_2015 value as one or more other policyholders, and
  • are not located in the same city like any other policyholder (i.e., the (lat, lon) attribute pairs must be unique).

Round tiv_2016 to two decimal places.

 

… ์ƒ๋žต


โ–  ํ’€์ด

  ๋ฌธ์ œ ์š”๊ตฌ์‚ฌํ•ญ  

 

sql ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์„œ ๋ชจ๋“  ๋ณดํ—˜ ๊ณ„์•ฝ์ž์— ๋Œ€ํ•ด tiv_2016์˜ ์ด ํˆฌ์ž๊ฐ€์น˜ ํ•ฉ๊ณ„๋ฅผ ์ถœ๋ ฅ

 

์กฐ๊ฑดโ‘  ๋ณดํ—˜ ๊ณ„์•ฝ์ž๋Š” ํ•œ๋ช… ์ด์ƒ์˜ ๋‹ค๋ฅธ ๋ณดํ—˜ ๊ณ„์•ฝ์ž์™€ ๋™์ผํ•œ tiv_2015๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ 

์กฐ๊ฑดโ‘ก ๋‹ค๋ฅธ ๋ณดํ—˜ ๊ณ„์•ฝ์ž์™€ ๊ฐ™์€ ๋„์‹œ์— ์žˆ์ง€ ์•Š์Œ. → (lat, lon) ์Œ์€ ๊ณ ์œ ๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค.

์กฐ๊ฑดโ‘ข tiv_2016 ํ•ฉ๊ณ„๋Š” ์†Œ์ˆ˜์  ๋‘์ž๋ฆฌ๊นŒ์ง€๋งŒ ์ถœ๋ ฅํ•œ๋‹ค.


์กฐ๊ฑดโ‘ , โ‘ก๋Š” WHERE์ ˆ์—์„œ ์ ์šฉํ•˜๋Š”๋ฐ

 

โ‘ ์€ tiv_2015 ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃนํ•‘ํ–ˆ์„ ๋•Œ ์ง‘๊ณ„๊ฐ€ 1์„  ์ดˆ๊ณผ*ํ•˜๋Š” tiv_2015๋งŒ ์ถœ๋ ฅํ•œ๋‹ค.

โ‘ก์€ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ pid๊ฐ€ ์„œ๋กœ ๊ฐ™์ง€ ์•Š์€(=์ž๊ธฐ์ž์‹ ์„ ์ œ์™ธํ•œ) ๋ณดํ—˜๊ณ„์•ฝ ๊ฑด์˜ (lat, lon)๋งŒ ์ถ”์ถœํ•˜๊ณ 

          ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•˜๋Š” (lat, lon)์ด ์„œ๋ธŒ์ฟผ๋ฆฌ์—์„œ ์ถœ๋ ฅ๋œ (lat, lon)๊ณผ ๋™์ผํ•˜์ง€ ์•Š์€ ๋ณดํ—˜๊ณ„์•ฝ๋งŒ ์ถœ๋ ฅํ•œ๋‹ค.

 

*'์ดˆ๊ณผ'๋กœ ์„ค์ •ํ•œ ์ด์œ  → '๋ณดํ—˜๊ณ„์•ฝ์ž๋Š” ํ•œ๋ช… ์ด์ƒ์˜ ๋‹ค๋ฅธ ๋ณดํ—˜ ๊ณ„์•ฝ์ž์™€~' ์ฆ‰ ์ตœ์†Œ 2๋ช…์ด ์ง‘๊ณ„๋œ๋‹ค.

 

โ‘ข tiv_2016์€ ์†Œ์ˆ˜์  ์ดํ•˜ ๋‘์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅ → ROUNDํ•จ์ˆ˜ ์ ์šฉ

SELECT ROUND(SUM(tiv_2016), 2) AS tiv_2016
 FROM Insurance I1
 WHERE tiv_2015 IN (SELECT tiv_2015 FROM Insurance 
                     GROUP BY 1
                     HAVING count(*) > 1)
 AND (I1.lat, I1.lon) NOT IN (SELECT lat, lon 
                               FROM Insurance I2
                               WHERE I1.pid != I2.pid)

 

 

'Growth ๐ŸŒณ > Practice ๐Ÿ’ป' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[LeetCode] 601. Human Traffic of Stadium  (0) 2023.05.11
[LeetCode] 577. Employee Bonus  (0) 2023.05.10
[LeetCode] 570. Managers with at Least 5 Direct Reports  (0) 2023.04.24
[LeetCode] 550. Game Play Analysis IV  (0) 2023.04.21
[LeetCode] 607. Sales Person  (0) 2023.04.20