SELECT gender, COUNT(*) FROM users WHERE is_deleted = 0 GROUP BY gender w HSPVQCZΛͬͯੑผ͝ͱʹάϧʔϐ ϯά w $06/5 ͰਓΛूܭ $06/5 %*45*/$5VTFS@JE Ͱ0, w 8)&3&ͷ݅ͰআࡁϢʔβʔΛআ֎
user_add_age AS( SELECT user_id, gender, birth, substr(date(), 1, 4) - birth AS age, CASE WHEN substr(date(), 1, 4) - birth >= 80 THEN '80' WHEN substr(date(), 1, 4) - birth >= 70 THEN '70' WHEN substr(date(), 1, 4) - birth >= 60 THEN '60' WHEN substr(date(), 1, 4) - birth >= 50 THEN '50' WHEN substr(date(), 1, 4) - birth >= 40 THEN '40' WHEN substr(date(), 1, 4) - birth >= 30 THEN '30' WHEN substr(date(), 1, 4) - birth >= 20 THEN '20' WHEN substr(date(), 1, 4) - birth < 20 THEN '10' ELSE 'ͦͷଞ' END AS age_range FROM users WHERE is_deleted = 0 ) SELECT age_range, COUNT(DISTINCT user_id) as uu FROM user_add_age GROUP BY age_range ORDER BY age_range
user_add_age AS( SELECT user_id, gender, birth, substr(date(), 1, 4) - birth AS age, CASE WHEN substr(date(), 1, 4) - birth >= 80 THEN '80' WHEN substr(date(), 1, 4) - birth >= 70 THEN '70' WHEN substr(date(), 1, 4) - birth >= 60 THEN '60' WHEN substr(date(), 1, 4) - birth >= 50 THEN '50' WHEN substr(date(), 1, 4) - birth >= 40 THEN '40' WHEN substr(date(), 1, 4) - birth >= 30 THEN '30' WHEN substr(date(), 1, 4) - birth >= 20 THEN '20' WHEN substr(date(), 1, 4) - birth < 20 THEN '10' ELSE 'ͦͷଞ' END AS age_range FROM users WHERE is_deleted = 0 ) SELECT age_range, COUNT(DISTINCT user_id) as uu FROM user_add_age GROUP BY age_range ORDER BY age_range w ྸʮTVCTUS EBUF CJSUIʯͰܭࢉ w ˞ʮBHFʯࠓճΘͳ͍ͷͰΧϥϜͱ͠ ͯͳͯ͘ͳ͠ w ྸΛ$"4&ࣜΛͬͯʹม
user_add_age AS( SELECT user_id, gender, birth, substr(date(), 1, 4) - birth AS age, CASE WHEN substr(date(), 1, 4) - birth >= 80 THEN '80' WHEN substr(date(), 1, 4) - birth >= 70 THEN '70' WHEN substr(date(), 1, 4) - birth >= 60 THEN '60' WHEN substr(date(), 1, 4) - birth >= 50 THEN '50' WHEN substr(date(), 1, 4) - birth >= 40 THEN '40' WHEN substr(date(), 1, 4) - birth >= 30 THEN '30' WHEN substr(date(), 1, 4) - birth >= 20 THEN '20' WHEN substr(date(), 1, 4) - birth < 20 THEN '10' ELSE 'ͦͷଞ' END AS age_range FROM users WHERE is_deleted = 0 ) SELECT age_range, COUNT(DISTINCT user_id) as uu FROM user_add_age GROUP BY age_range ORDER BY age_range w ΛೖΕͨใͰҰ࣌ςʔϒϧΛ࡞ w আࡁϢʔβʔআ֎͢Δ
user_add_age AS( SELECT user_id, gender, birth, substr(date(), 1, 4) - birth AS age, CASE WHEN substr(date(), 1, 4) - birth >= 80 THEN '80' WHEN substr(date(), 1, 4) - birth >= 70 THEN '70' WHEN substr(date(), 1, 4) - birth >= 60 THEN '60' WHEN substr(date(), 1, 4) - birth >= 50 THEN '50' WHEN substr(date(), 1, 4) - birth >= 40 THEN '40' WHEN substr(date(), 1, 4) - birth >= 30 THEN '30' WHEN substr(date(), 1, 4) - birth >= 20 THEN '20' WHEN substr(date(), 1, 4) - birth < 20 THEN '10' ELSE 'ͦͷଞ' END AS age_range FROM users WHERE is_deleted = 0 ) SELECT age_range, COUNT(DISTINCT user_id) as uu FROM user_add_age GROUP BY age_range ORDER BY age_range w BHF@SBOHF Ͱ(3061#:ͯ͠ਓΛΧϯτ w ਓͷΧϯτVTFS@JEΛϢχʔΫʹͯ͠Χϯτ ͢Δ w ඞཁʹԠͯ͡03%&3#:Ͱॱʹฒସ͑
o.order_date, COUNT(*), SUM(p.price) FROM orders AS o LEFT JOIN products AS p ON o.order_product_id = p.product_id WHERE o.is_canceled = 0 GROUP BY o.order_date ORDER BY o.order_date
o.order_date, COUNT(*), SUM(p.price) FROM orders AS o LEFT JOIN products AS p ON o.order_product_id = p.product_id WHERE o.is_canceled = 0 GROUP BY o.order_date ORDER BY o.order_date w QSPEVDUTͷQSPEVDU@JEͱPSEFSTͷ PSEFS@QSPEVDU@JEΛͬͯใͱจใΛ݁ ߹ͤ͞Δ w ݁߹ͷࡍ*//&3+0*/͔-&'5+0*/Λ͏ w ˞ࠓճ*//&3+0*/Ͱ-&'5+0*/Ͱ݁Ռ ಉ͡
o.order_date, COUNT(*), SUM(p.price) FROM orders AS o LEFT JOIN products AS p ON o.order_product_id = p.product_id WHERE o.is_canceled = 0 GROUP BY o.order_date ORDER BY o.order_date w ใͰ(3061#:Λͯ͠ച্ͱߪೖ݅Λूܭ w ച্QSJDFͷ߹ܭɺߪೖ݅Ϩίʔυ จใ ͷߦ ΛΧϯτ͢Δ w JT@DBODFMFEͰจΩϟϯηϧͷσʔλΛআ֎
substr(o.order_date, 1, 7) AS order_month, COUNT(*), SUM(p.price) FROM orders AS o LEFT JOIN products AS p ON o.order_product_id = p.product_id WHERE o.is_canceled = 0 GROUP BY order_month ORDER BY order_month
substr(o.order_date, 1, 7) AS order_month, COUNT(*), SUM(p.price) FROM orders AS o LEFT JOIN products AS p ON o.order_product_id = p.product_id WHERE o.is_canceled = 0 GROUP BY order_month ORDER BY order_month w ʮ݄ʯTVCTUS PSEFS@EBUF Λͬͯऔಘ ͷจࣈ͔ΒจࣈΛΓऔͬͯʮ݄ʯͷใΛऔಘ PSEFS@EBUF PSEFS@NPOUI TVCTUS PSEFS@EBUF
substr(o.order_date, 1, 7) AS order_month, COUNT(*), SUM(p.price) FROM orders AS o LEFT JOIN products AS p ON o.order_product_id = p.product_id WHERE o.is_canceled = 0 GROUP BY order_month ORDER BY order_month w 4&-&$5ͰTVCTUSͰมͨ͠PSEFS@NPOUIΛͬͯ (3061#:ͱ03%&3#:Ͱूܭͱฒͼସ͑ w ຊདྷͰ͋Ε42-ͷ࣮ߦॱ͔Β03%&3#:Ͱ4&-&$5 ͷผ໊͕͑Δ͕ɺ(3061#:Ͱ͑ͳ͍ w %#ʹΑͬͯ(3061#:Ͱ4&-&$5ͷผ໊͕͑Δ ߹͕͋ΔͷͰҙ͕ඞཁ '30. +0*/ 8)&3& (3061#: )"7*/( 4&-&$5 03%&3#: -*.*5 ᶃ ᶄ ᶅ ᶆ ᶇ ᶈ ᶉ ᶊ 42-ͷ࣮ߦॱংˠ
order_data_month AS( SELECT *, substr(order_date, 1, 7) AS order_month FROM orders WHERE is_canceled = 0 ) SELECT order_month, COUNT(*), SUM(p.price) FROM order_data_month AS o LEFT JOIN products AS p ON o.order_product_id = p.product_id GROUP BY order_month ORDER BY order_month w 8*5)۟Λͬͯɺʮ݄ʯใΛՃͨ͠Ұ࣌ςʔϒϧ Λ࡞ w ݄ใͰ(3061#:Λͬͯूܭ w ͜ͷ߹8*5)۟ͷதͰఆٛͨ͠PSEFS@NPOUIΛ ͬͯ(3061#:ͷूܭ͕Մೳ
o.user_id, MAX(o.order_date), COUNT(DISTINCT o.order_date), SUM(p.price) FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id LEFT JOIN users u ON o.user_id = u.user_id WHERE o.is_canceled = 0 AND u.is_deleted = 0 GROUP BY o.user_id
o.user_id, MAX(o.order_date), COUNT(DISTINCT o.order_date), SUM(p.price) FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id LEFT JOIN users u ON o.user_id = u.user_id WHERE o.is_canceled = 0 AND u.is_deleted = 0 GROUP BY o.user_id w PSEFSTͱQSPEVDUTςʔϒϧΛ+0*/ w ͷֹۚʢQSJDFʣΛऔಘ͢ΔͨΊ w PSEFSTͱVTFSTςʔϒϧΛ+0*/ w আࡁΈϢʔβʔΛআ֎͢ΔͨΊ
o.user_id, MAX(o.order_date), COUNT(DISTINCT o.order_date), SUM(p.price) FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id LEFT JOIN users u ON o.user_id = u.user_id WHERE o.is_canceled = 0 AND u.is_deleted = 0 GROUP BY o.user_id w VTFS@JEͰ(3061#:ͯ͠ɺҎԼͰ3'.Λநग़ w 3ɿ࠷ऴߪೖˠ."9 PPSEFS@EBUF w 'ɿߪೖˠ$06/5 %*45*/$5PPSEFS@EBUF w .ɿߪೖֹۚˠ46. QQSJDF ˞3'.ੳͱ3FDFODZʢ࠷ऴߪೖʣ'SFRVFODZʢߪೖසʣ .POFUBSZʢߪೖֹۚʣͷͭͷࢦඪͰސ٬Λੳ͢Δख๏
order_data_users AS( SELECT o.user_id, COUNT(DISTINCT order_date) AS count_order_date FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id LEFT JOIN users u ON o.user_id = u.user_id WHERE is_canceled = 0 AND u.is_deleted = 0 AND order_date BETWEEN '2022-01-01' and '2022-12-31' GROUP BY o.user_id ) SELECT count_order_date, COUNT(DISTINCT user_id) as user_count FROM order_data_users GROUP BY count_order_date ORDER BY count_order_date
8*5)۟Λͬͯ·ͣϢʔβʔ͝ͱͷߪೖΛΧϯ τ͢Δ w PSEFSTͱVTFSTςʔϒϧΛ+0*/ͯ͠จσʔλΛநग़ w ݅ͰΩϟϯηϧΛআ֎ɺআࡁϢʔβʔͷআ֎Λ͢Δ w PSEFST͔ΒσʔλΛநग़͍ͯ͠ΔͷͰɺߪೖ͕͋ͬͨ ϢʔβʔͷΈσʔλΛநग़ WITH order_data_users AS( SELECT o.user_id, COUNT(DISTINCT order_date) AS count_order_date FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id LEFT JOIN users u ON o.user_id = u.user_id WHERE is_canceled = 0 AND u.is_deleted = 0 AND order_date BETWEEN '2022-01-01' and '2022-12-31' GROUP BY o.user_id ) SELECT count_order_date, COUNT(DISTINCT user_id) as user_count FROM order_data_users GROUP BY count_order_date ORDER BY count_order_date
VTFS@JEͰ(3061#:͢Δ͜ͱͰϢʔβʔຖͷߪೖ Λूܭ w ߪೖͷूܭ$06/5 %*45*/$5PSEFS@EBUFʣˠ ߪೖΛϢχʔΫΧϯτ͢Δ WITH order_data_users AS( SELECT o.user_id, COUNT(DISTINCT order_date) AS count_order_date FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id LEFT JOIN users u ON o.user_id = u.user_id WHERE is_canceled = 0 AND u.is_deleted = 0 AND order_date BETWEEN '2022-01-01' and '2022-12-31' GROUP BY o.user_id ) SELECT count_order_date, COUNT(DISTINCT user_id) as user_count FROM order_data_users GROUP BY count_order_date ORDER BY count_order_date
Ϣʔβʔ͝ͱͷߪೖΛΧϯτͨ͠Ұ࣌ςʔϒϧ͔ ΒߪೖΛϕʔεʹͯ͠(3061#:ͰਓΛΧϯτ WITH order_data_users AS( SELECT o.user_id, COUNT(DISTINCT order_date) AS count_order_date FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id LEFT JOIN users u ON o.user_id = u.user_id WHERE is_canceled = 0 AND u.is_deleted = 0 AND order_date BETWEEN '2022-01-01' and '2022-12-31' GROUP BY o.user_id ) SELECT count_order_date, COUNT(DISTINCT user_id) as user_count FROM order_data_users GROUP BY count_order_date ORDER BY count_order_date
order_data_users AS( SELECT u.user_id, COUNT(DISTINCT order_date) AS count_order_date FROM users u LEFT JOIN orders o ON u.user_id = o.user_id WHERE (o.is_canceled = 0 OR o.is_canceled IS NULL) AND u.is_deleted = 0 GROUP BY u.user_id ) SELECT count_order_date, COUNT(DISTINCT user_id) AS user_count FROM order_data_users GROUP BY count_order_date ORDER BY count_order_date
order_data_users AS( SELECT u.user_id, COUNT(DISTINCT order_date) AS count_order_date FROM users u LEFT JOIN orders o ON u.user_id = o.user_id WHERE (o.is_canceled = 0 OR o.is_canceled IS NULL) AND u.is_deleted = 0 GROUP BY u.user_id ) SELECT count_order_date, COUNT(DISTINCT user_id) AS user_count FROM order_data_users GROUP BY count_order_date ORDER BY count_order_date w 8*5)۟Λͬͯ·ͣϢʔβʔ͝ͱͷߪೖΛΧϯ τ͢Δ w ߪೖ͕ͳ͔ͬͨϢʔβʔΧϯτ͢ΔͷͰɺϕʔε VTFSTςʔϒϧ͔Βऔಘ͢ΔɻVTFSTςʔϒϧʹରͯ͠ PSEFSTΛ+0*/ͤ͞Δ w ΩϟϯηϧΛআ֎͢ΔࡍʹJT@DBODFMFE͚ͩʹ͢Δ ͱɺͦͦߪೖ͕ͳ͔ͬͨσʔλ͕શͯআ֎͞Εͯ͠· ͏ ߪೖ͕ͳ͍߹JT@DBODFMFE͕OVMM ͳͷͰɺ JT@DBODFMFE͕OVMMͷ߹݅ʹؚΊΔ
order_data_users AS( SELECT u.user_id, COUNT(DISTINCT order_date) AS count_order_date FROM users u LEFT JOIN orders o ON u.user_id = o.user_id WHERE (o.is_canceled = 0 OR o.is_canceled IS NULL) AND u.is_deleted = 0 GROUP BY u.user_id ) SELECT count_order_date, COUNT(DISTINCT user_id) AS user_count FROM order_data_users GROUP BY count_order_date ORDER BY count_order_date w ᶈͱͷҧ͍+0*/ͷॱ൪ w ᶈPSEFSTΛϕʔεʹͯ͠VTFSTͱ+0*/ɻࠓճVTFST Λϕʔεʹͯ͠PSEFSTͱ+0*/
order_data_users AS( SELECT u.user_id, COUNT(DISTINCT order_date) AS count_order_date FROM users u LEFT JOIN orders o ON u.user_id = o.user_id WHERE (o.is_canceled = 0 OR o.is_canceled IS NULL) AND u.is_deleted = 0 GROUP BY u.user_id ) SELECT count_order_date, COUNT(DISTINCT user_id) AS user_count FROM order_data_users GROUP BY count_order_date ORDER BY count_order_date w ᶈͱͷҧ͍+0*/ͷॱ൪ w ᶈPSEFSTΛϕʔεʹͯ͠VTFSTͱ+0*/ɻࠓճVTFST Λϕʔεʹͯ͠PSEFSTͱ+0*/ ᶈ PSEFSTΛϕʔεʹVTFSTͱ+0*/ ᶉ VTFSTΛϕʔεʹPSEFSTͱ+0*/ ɾPSEFSTͷσʔλ͕શͯ݁߹͞ΕΔ ˠVTFSTʹใ͕ͳ͍ߪೖσʔλ ʢະϩάΠϯͰߪೖͨ͠σʔλʣ औಘ͞ΕΔ ɾߪೖ͕ͳ͍σʔλऔಘ͞Εͳ͍ ɾVTFSTͷσʔλ͕શͯ݁߹͞ΕΔ ˠPSEFSTʹใ͕ͳ͍ސ٬ใʢະ ߪೖͷϢʔβʔʣऔಘ͞ΕΔ ɾVTFSTʹใ͕ͳ͍ߪೖσʔλ ʢະϩάΠϯͰߪೖͨ͠σʔλʣ औಘ͞Εͳ͍ VTFST PSEFST PSEFST VTFST
order_data_users AS( SELECT u.user_id, COUNT(DISTINCT order_date) AS count_order_date FROM users u LEFT JOIN orders o ON u.user_id = o.user_id WHERE (o.is_canceled = 0 OR o.is_canceled IS NULL) AND u.is_deleted = 0 GROUP BY u.user_id ) SELECT count_order_date, COUNT(DISTINCT user_id) AS user_count FROM order_data_users GROUP BY count_order_date ORDER BY count_order_date w ͋ͱᶈಉ༷ʹߪೖසͰ(3061#:Λͯ͠Ϣʔ βʔΛΧϯτ͢Δ
DISTINCT o.user_id FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE is_canceled = 0 AND o.order_date = '2022-01-01' AND p.large_category = '৯'
DISTINCT o.user_id FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE is_canceled = 0 AND o.order_date = '2022-01-01' AND p.large_category = '৯' w PSEFSTͱQSPEVDUTΛQSPEVDU@JEΛΩʔʹ݁߹͠·͢ w ΦʔμʔΩϟϯηϧͷใআ֎͠·͢ w ʮ৯ʯMBSHF@DBUFHPSZb৯`Ͱఆ͠·͢
beauty_order_user_id AS ( SELECT DISTINCT user_id FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE is_canceled = 0 AND p.medium_category = 'ඒ༰' ) SELECT p.medium_category, COUNT(DISTINCT user_id) AS uu FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE is_canceled = 0 -- ඒ༰Λങͬͨਓ AND user_id IN (SELECT user_id FROM beauty_order_user_id) -- ඒ༰Ҏ֎ͷ AND p.medium_category <> 'ඒ༰' GROUP BY p.medium_category ORDER BY uu DESC
beauty_order_user_id AS ( SELECT DISTINCT user_id FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE is_canceled = 0 AND p.medium_category = 'ඒ༰' ) SELECT p.medium_category, COUNT(DISTINCT user_id) AS uu FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE is_canceled = 0 -- ඒ༰Λങͬͨਓ AND user_id IN (SELECT user_id FROM beauty_order_user_id) -- ඒ༰Ҏ֎ͷ AND p.medium_category <> 'ඒ༰' GROUP BY p.medium_category ORDER BY uu DESC w 8*5)۟Λͬͯඒ༰ΛങͬͨVTFS@JEΛϢχʔΫʹந ग़ ᶊͷ42-ͱ΄΅ಉ͡
beauty_order_user_id AS ( SELECT DISTINCT user_id FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE is_canceled = 0 AND p.medium_category = 'ඒ༰' ) SELECT p.medium_category, COUNT(DISTINCT user_id) AS uu FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE is_canceled = 0 -- ඒ༰Λങͬͨਓ AND user_id IN (SELECT user_id FROM beauty_order_user_id) -- ඒ༰Ҏ֎ͷ AND p.medium_category <> 'ඒ༰' GROUP BY p.medium_category ORDER BY uu DESC w ݅ʹʮඒ༰ΛങͬͨਓʯΛ͚ͭΔ w VTFS@JE͕ඒ༰ΛങͬͨϢʔβʔ*%ʹؚ·ΕΔ ʢ*/ʣͱ͍͏݅Λ͚ͭΔ w ඒ༰Ҏ֎ͷΛநग़͢Δ߹ʮʯΛͬͯಛఆ ͷΧςΰϦҎ֎ͷσʔλΛநग़͢Δ
beauty_order_user_id AS ( SELECT DISTINCT user_id FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE is_canceled = 0 AND p.medium_category = 'ඒ༰' ) SELECT p.medium_category, COUNT(DISTINCT user_id) AS uu FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE is_canceled = 0 -- ඒ༰Λങͬͨਓ AND user_id IN (SELECT user_id FROM beauty_order_user_id) -- ඒ༰Ҏ֎ͷ AND p.medium_category <> 'ඒ༰' GROUP BY p.medium_category ORDER BY uu DESC w NFEJVN@DBUFHPSZͰ(3061#:ͯ͠VTFS@JEΛϢ χʔΫΧϯτ͢Δ
beauty_order_user_id AS ( SELECT DISTINCT user_id FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE is_canceled = 0 AND p.medium_category = 'ඒ༰' ), category_order_data AS ( SELECT p.medium_category, COUNT(DISTINCT user_id) AS uu, (SELECT COUNT(DISTINCT user_id) FROM beauty_order_user_id) AS total_uu FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE is_canceled = 0 -- ඒ༰Λങͬͨਓ AND user_id IN (SELECT user_id FROM beauty_order_user_id) -- ඒ༰Ҏ֎ͷ AND p.medium_category <> 'ඒ༰' GROUP BY p.medium_category ) SELECT medium_category, uu, total_uu, round(100.00 * uu / total_uu, 2) AS percent_uu FROM category_order_data ORDER BY uu DESC w αϒΫΤϦΛͬͯɺඒ༰Λങͬͨਓͷ߹ܭਓΛྻ ʹՃ ଞͷΧςΰϦങͬͯΔਓ͕Կ%͍Δͷׂ͔߹Ұॹʹग़͢߹ NFEJVN@DBUFHPSZ VV UPUBM@VV QFSDFOU@VV จ۩ ҿྉਫ ࡊ
beauty_order_user_id AS ( SELECT DISTINCT user_id FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE is_canceled = 0 AND p.medium_category = 'ඒ༰' ), category_order_data AS ( SELECT p.medium_category, COUNT(DISTINCT user_id) AS uu, (SELECT COUNT(DISTINCT user_id) FROM beauty_order_user_id) AS total_uu FROM orders o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE is_canceled = 0 -- ඒ༰Λങͬͨਓ AND user_id IN (SELECT user_id FROM beauty_order_user_id) -- ඒ༰Ҏ֎ͷ AND p.medium_category <> 'ඒ༰' GROUP BY p.medium_category ) SELECT medium_category, uu, total_uu, round(100.00 * uu / total_uu, 2) AS percent_uu FROM category_order_data ORDER BY uu DESC w ߹ܭਓͱΧςΰϦ͝ͱͷߪೖਓΛׂΓࢉׂͯ͠߹ ΛٻΊΔ w 306/%ܻΛࢦఆ࢛ࣺͯ͠ޒೖ͢Δؔ w ʮʯΛ͔͚Δ͜ͱͰ݁ՌখୈೋҐ·Ͱ දࣔͤ͞Δ ଞͷΧςΰϦങͬͯΔਓ͕Կ%͍Δͷׂ͔߹Ұॹʹग़͢߹ NFEJVN@DBUFHPSZ VV UPUBM@VV QFSDFOU@VV จ۩ ҿྉਫ ࡊ
WITH user_order AS ( SELECT user_id, MIN(order_id) AS min_order_id FROM orders WHERE user_id IS NOT NULL AND is_canceled = 0 GROUP BY user_id ) SELECT name, COUNT(*) AS order_count, SUM(price) AS order_price FROM orders AS o LEFT JOIN products p ON o.order_product_id = p.product_id -- ॳճߪೖͷจIDʹݶఆ WHERE order_id IN (SELECT min_order_id FROM user_order) GROUP BY name ORDER BY order_count DESC ˒˒˒˒˒
WITH user_order AS ( SELECT user_id, MIN(order_id) AS min_order_id FROM orders WHERE user_id IS NOT NULL AND is_canceled = 0 GROUP BY user_id ) SELECT name, COUNT(*) AS order_count, SUM(price) AS order_price FROM orders AS o LEFT JOIN products p ON o.order_product_id = p.product_id -- ॳճߪೖͷจIDʹݶఆ WHERE order_id IN (SELECT min_order_id FROM user_order) GROUP BY name ORDER BY order_count DESC ˒˒˒˒˒ w VTFS@JEͰάϧʔϐϯάͯ͠จ൪߸͕Ұ൪খ͍͞ σʔλΛநग़͢ΔҰ࣌ςʔϒϧΛ࡞͢Δ w ʮ.*/ PSEFS@JE ʯʹΑͬͯϢʔβʔ͝ͱʹҰ൪খ͞ ͍จ*%ॳճͷจ*%Λऔಘ͢Δ
WITH user_order AS ( SELECT user_id, MIN(order_id) AS min_order_id FROM orders WHERE user_id IS NOT NULL AND is_canceled = 0 GROUP BY user_id ) SELECT name, COUNT(*) AS order_count, SUM(price) AS order_price FROM orders AS o LEFT JOIN products p ON o.order_product_id = p.product_id -- ॳճߪೖͷจIDʹݶఆ WHERE order_id IN (SELECT min_order_id FROM user_order) GROUP BY name ORDER BY order_count DESC ˒˒˒˒˒ w 8*5)۟Ͱ࡞ͨ͠Ұ࣌ςʔϒϧʹॳճߪೖͷจ*% ؚ͕·Ε͍ͯΔͷͰɺͦΕΛ݅ʹՃͯ͠ॳճߪೖ ͷσʔλΛநग़ w ʮ*/ʯΛͬͯॳճߪೖͷจ*%ͷΈΛநग़
WITH user_order AS ( SELECT user_id, MIN(order_id) AS min_order_id FROM orders WHERE user_id IS NOT NULL AND is_canceled = 0 GROUP BY user_id ) SELECT name, COUNT(*) AS order_count, SUM(price) AS order_price FROM orders AS o LEFT JOIN products p ON o.order_product_id = p.product_id -- ॳճߪೖͷจIDʹݶఆ WHERE order_id IN (SELECT min_order_id FROM user_order) GROUP BY name ORDER BY order_count DESC ˒˒˒˒˒ w ໊ʢOBNFʣͰάϧʔϐϯάͯ͠ߪೖ݅Λநग़ ඞཁʹԠֹͯۚ͡ग़ͤΔ w ߪೖ݅ʮ$06/5 ʯͰʮ$06/5 %*45*/$5 PSEFS@JE ʯͰಉ͡
WITH add_order_number AS( SELECT *, DENSE_RANK() OVER(PARTITION BY o.user_id ORDER BY o.order_id ASC) AS order_number FROM orders AS o LEFT JOIN products p ON o.order_product_id = p.product_id WHERE o.user_id IS NOT NULL AND o.is_canceled = 0 ) SELECT name, COUNT(*) AS order_count, SUM(price) AS order_price FROM add_order_number WHERE order_number = 1 GROUP BY name ORDER BY order_count DESC ˒˒˒˒˒ w 8*/%08ؔΛͬͯϢʔβʔ͝ͱͷจʹ൪߸Λ༩͢ΔࣄͰநग़͕Մೳˠ%&/4&@3"/, w ॳճߪೖͷσʔλΛநग़͢Δ߹ʮPSEFS@OVNCFSʯͷ݅Λ͚ͭΔ 3"/, ಉ͕͋ͬͨ߹ॱҐಉ ͡ʹͳΓɺͦͷ࣍ॱҐΛ ඈ͠·͢ɻ ʢ1Ґɺ1Ґɺ3Ґɾɾɾʣ %&/4&@3" /, ಉ͕͋ͬͨ߹ॱҐಉ ͡ʹͳΓɺͦͷ࣍ॱҐΛ ඈ͠·ͤΜɻ ʢ1Ґɺ1Ґɺ2Ґɾɾɾʣ 308@/6. .#&3 ಉ͕͋ͬͯಉ͡ॱҐʹ ͳΒͣɺॱҐΛΧϯτ ͠·͢ɻ ಉ͕͋ͬͨ߹ͷॱҐ ৗʹಉ͡ͱݶΓ·ͤΜɻ ʢ1Ґɺ2Ґɺ3Ґɾɾɾʣ