コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
ソースコード
WITH
sub1 AS (
SELECT
ph.MEMBER_CODE,
mc.MEMBER_CNT, --全部で何人いるか
ph.ITEM_CODE,
COUNT(1) OVER (
PARTITION BY
ph.ITEM_CODE
) AS ITEM_CNT --何人に買われたか
FROM
PURCHASE_HISTORY AS ph
CROSS JOIN (
SELECT
COUNT(DISTINCT MEMBER_CODE) AS MEMBER_CNT
FROM
PURCHASE_HISTORY
) AS mc
),
sub2 AS (
SELECT
s1.ITEM_CODE AS ITEM_A,
s1.ITEM_CNT AS A_CNT, --Aが何人に買われたか
s2.ITEM_CODE AS ITEM_B,
s2.ITEM_CNT AS B_CNT, --Bが何人に買われたか
COUNT(1) AS AB_CNT, --AとBの両方を買った人数
s1.MEMBER_CNT AS M_CNT --全部で何人いるか
FROM
sub1 AS s1
INNER JOIN sub1 AS s2 ON s1.MEMBER_CODE = s2.MEMBER_CODE
WHERE
s1.ITEM_CODE <> s2.ITEM_CODE
GROUP BY
ITEM_A,
ITEM_B
)
SELECT
ITEM_A,
ITEM_B,
ROUND(100.0 * AB_CNT / M_CNT, 5) AS SUPPORT,
ROUND(100.0 * AB_CNT / A_CNT, 5) AS CONFIDENCE,
ROUND((1.0 * AB_CNT / A_CNT) / (1.0 * B_CNT / M_CNT), 5) AS LIFT
FROM
sub2
ORDER BY
LIFT DESC,
SUPPORT DESC,
CONFIDENCE DESC,
ITEM_A DESC;
提出情報
提出日時 | 2024/06/29 03:16:32 |
コンテスト | 第11回 SQLコンテスト |
問題 | アソシエーション分析 |
受験者 | kwm_t |
状態 (詳細) | AC (Accepted: 正答) |
メモリ使用量 | 84 MB |
メッセージ
テストケース(通過数/総数)
3/3
状態
メモリ使用量
データパターン1
AC
84 MB
データパターン2
AC
84 MB
データパターン3
AC
84 MB