ソースコード
WITH
  total AS (
    SELECT
      COUNT(DISTINCT SESSION_ID) AS total_count
    FROM
      PURCHASE_HISTORY
  )
SELECT
  combi_count.ITEM_CODE AS ITEM_A,
  combi_count.ITEM_CODE2 AS ITEM_B,
  ROUND(CAST(combi_count.order_count AS REAL) / total_count * 100, 5) AS SUPPORT,
  ROUND(CAST(combi_count.order_count AS REAL) / item_count.order_count * 100, 5) AS CONFIDENCE,
  ROUND(CAST(combi_count.order_count AS REAL) / item_count.order_count / AllBuyY.order_count, 5) AS LIFT
FROM
  total,
  (
    SELECT
      ITEM_CODE,
      COUNT(DISTINCT SESSION_ID) AS order_count
    FROM
      PURCHASE_HISTORY
    GROUP BY
      ITEM_CODE
  ) AS item_count
  INNER JOIN (
    SELECT
      X.ITEM_CODE AS ITEM_CODE,
      Y.ITEM_CODE AS ITEM_CODE2,
      COUNT(DISTINCT X.SESSION_ID) AS order_count
    FROM
      PURCHASE_HISTORY AS X
      INNER JOIN PURCHASE_HISTORY Y ON X.SESSION_ID = Y.SESSION_ID
      AND X.ITEM_CODE <> Y.ITEM_CODE
    GROUP BY
      X.ITEM_CODE,
      Y.ITEM_CODE
  ) AS combi_count ON combi_count.ITEM_CODE = item_count.ITEM_CODE
  INNER JOIN (
    SELECT
      ITEM_CODE,
      CAST(COUNT(DISTINCT SESSION_ID) AS REAL) / (
        SELECT
          COUNT(DISTINCT SESSION_ID)
        FROM
          PURCHASE_HISTORY
      ) AS order_count
    FROM
      PURCHASE_HISTORY
    GROUP BY
      ITEM_CODE
  ) AS AllBuyY ON combi_count.ITEM_CODE2 = AllBuyY.ITEM_CODE
ORDER BY
  LIFT desc,
  SUPPORT desc,
  CONFIDENCE desc,
  combi_count.ITEM_CODE desc;
提出情報
提出日時2024/05/27 11:39:35
コンテスト第11回 SQLコンテスト
問題アソシエーション分析
受験者otsuneko
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量86 MB
メッセージ
テストケース(通過数/総数)
3/3
状態
メモリ使用量
データパターン1
AC
85 MB
データパターン2
AC
86 MB
データパターン3
AC
83 MB