๋ชฉ๋กData๐/SQL ์ฟผ๋ฆฌ ์คํฐ๋ (6)
EEALL@ONCE
ํด๋น ์์ ๋ง์ง๋ง ์ผ ๊ฐ์ ธ์ค๋ ์ฟผ๋ฆฌ : LAST_DAY SELECT * FROM tb_rmny WHERE pay_day BETWEEN '2023-05-01' AND LAST_DAY('2023-05-01');
`bill_acc_id`๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํํ์ฌ `aply_amt` ๊ฐ์ ๋ชจ๋ ๋ํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ `total_deposit` ์ปฌ๋ผ์ ์ ๋ฐ์ดํธํ๋ ค๋ ๊ฒ์ผ๋ก ์ดํดํ์์ต๋๋ค. ์๋์ SQL ์ฟผ๋ฆฌ๋ ๊ทธ ์์ ์ ์ํํ๋ ์์์ ๋๋ค. 1. ๋จผ์ , `bill_acc_id`๋ฅผ ๊ธฐ์ค์ผ๋ก `aply_amt` ๊ฐ์ ๋ํ๋ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. 2. ๊ทธ ๋ค์, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก `tb_rmny` ํ ์ด๋ธ์ `total_deposit` ์ปฌ๋ผ์ ์ ๋ฐ์ดํธํฉ๋๋ค. UPDATE tb_rmny SET total_deposit = ( SELECT SUM(aply_amt) FROM tb_rmny AS subquery WHERE subquery.bill_acc_id = tb_rmny.bill_acc_id ) ์ด ์ฟผ๋ฆฌ๋ `tb_rmny` ํ ์ด๋ธ..
์ฃผ๊ฐ ํ์ฑ ์ ์ ๊ฐ ๋จ์ด์ง๊ณ ์๋ค... ์๊ทธ๋ฐ๊ฐ?! ์ด์ ๋ฅผ ์ฐพ์๋ณด์ . Table 1: Users : ๊ณ ๊ฐ ํ ์ด๋ธ Table 2: Events : ๊ณ ๊ฐ์ด ํ ํ์ ๊ธฐ๋ก ํ ์ด๋ธ ( ์๋ฅผ ๋ค์ด ์ข์์ ๋๋ฅด๊ธฐ ๋ฑ) Table 3: Email Events : ๊ณ ๊ฐ์ด ์ด๋ฉ์ผ์์ ํ ํ๋ ๊ธฐ๋ก ํ ํ ์ด๋ธ ๐ก Solving the case 1. One of the easiest things to check is growth, both because it's easy to measure and because most companies (Yammer included) track this closely already. In this case, you have to make it yourself, though. You'll ..
๐ง ๋ฌธ์ 1. weekly Active Users ํ ์ด๋ธ์ ๋ง๋ค ์ ์์๊น? ๐ ํ ์ด๋ธ https://mode.com/sql-tutorial/a-drop-in-user-engagement/ Investigating a Drop in User Engagement | SQL Analytics Training - Mode In this lesson we'll cover: Before starting, be sure to read the overview to learn a bit about Yammer as a company. Yammer's Analysts are responsible for triaging product and business problems as they come up. In many ca..
1. ๐ํ ์ด๋ธ 2. ๐ง ๋ฌธ์ 2๊ฐ ์ด์์ ๊ฒ์๋ฌผ์ ์์ฑํ ์ฌ์ฉ์๋ง ์ ํํ๊ณ ์ถ๋ค. 3. ๐ก ํด๊ฒฐ SELECT u.id, u.username FROM Users u WHERE u.id IN ( SELECT p.user_id FROM Posts p GROUP BY p.user_id HAVING COUNT(*) >= 2 ); ๐ด HAVING HAVING ์ ์ SQL์์ ๊ทธ๋ฃนํ๋ ๊ฒฐ๊ณผ์ ๋ํ ํํฐ๋ฅผ ์ ๊ณต. ์ฆ, GROUP BY ์ ๋ก ๊ทธ๋ฃนํ๋ ๊ฒฐ๊ณผ ์ค ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ทธ๋ฃน๋ง์ ์ ํํ๊ณ ์ถ์ ๋ ์ฌ์ฉ HAVING ์ ์ GROUP BY ์ ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ฉฐ, WHERE ์ ๊ณผ ๋น์ทํ๊ฒ ๋์ํ์ง๋ง ์ค์ํ ์ฐจ์ด์ ์ด ์์! WHERE ์ ์ ๊ฐ๋ณ ํ์ ๋ํ ํํฐ๋ฅผ ์ ๊ณตํ๋ ๋ฐ๋ฉด, HAVING ์ ์ ๊ทธ๋ฃน์ ๋ํ ํํฐ๋ฅผ ์ ๊ณต..
๐ ํ ์ด๋ธ : payment (์๋ฉ/ํ ์ธ) / bill (์ฒญ๊ตฌ) ๐ง๋ฌธ์ ์ฌํญ: ์ฒญ๊ตฌ ํ ์ด๋ธ๊ณผ ์๋ฉ ํ ์ด๋ธ์ด ์๋๋ฐ, ์ฒญ๊ตฌ ํ ์ด๋ธ ํญ๋ชฉ์ ๋ํ ์๋ฉ์ด ๋์๋์ง๋ฅผ ์ฒดํฌํ๊ณ ์ถ๋ค. ๋ค๋ง ๋ชจ๋ ๋ฉ๋ถ ์ด์ธ์๋ ๋ถ๋ถ์ ์ผ๋ก ์ฐ๋์ฐ๋ ๋ฉ๋ถํ์ ๊ฐ๋ฅ์ฑ๋ ์๋ ์ํฉ ๋ํ ์๋ฉ ํ ์ด๋ธ์ ๊ณ ๊ฐ์ด ์๋ฉํ ๊ธ์ก๋ ์์ด์ง๋ง ํ์ฌ๊ฐ ํ ์ธํด์ฃผ๋ ๊ธ์ก๋ ์์ธ๋ค. (์ฆ ์ฒญ๊ตฌ๊ธ-์๋ฉ๊ธ-ํ ์ธ๊ธ=0 ์ด ๋์ด์ผ ์๋ฉ์ด ๋๋ค.) ๐ก์๋ฃจ์ : SELECT bill.bill_sn, bill.ban, bill.bill_item, bill.charge_money, SUM(IFNULL(pym.pym_amt, 0)), SUM(IFNULL(sale.pym_amt, 0)), (bill.charge_money - SUM(IFNULL(pym.pym_amt, 0)) ..