BrickTracker/bricktracker/sql/rebrickable/set/need_refresh.sql

54 lines
1.8 KiB
MySQL
Raw Normal View History

2025-02-04 23:05:36 +01:00
SELECT
"rebrickable_sets"."set",
"rebrickable_sets"."name",
"rebrickable_sets"."number_of_parts",
"rebrickable_sets"."image",
"rebrickable_sets"."url",
"null_join"."null_rgb",
"null_join"."null_transparent",
"null_join"."null_url"
FROM "rebrickable_sets"
INNER JOIN (
SELECT
"null_sums"."set",
"null_sums"."null_rgb",
"null_sums"."null_transparent",
"null_sums"."null_url"
FROM (
SELECT
"unique_set_parts"."set",
SUM(CASE WHEN "unique_set_parts"."color_rgb" IS NULL THEN 1 ELSE 0 END) AS "null_rgb",
SUM(CASE WHEN "unique_set_parts"."color_transparent" IS NULL THEN 1 ELSE 0 END) AS "null_transparent",
SUM(CASE WHEN "unique_set_parts"."url" IS NULL THEN 1 ELSE 0 END) AS "null_url"
FROM (
SELECT
"bricktracker_sets"."set",
"rebrickable_parts"."color_rgb",
"rebrickable_parts"."color_transparent",
"rebrickable_parts"."url"
FROM "bricktracker_sets"
INNER JOIN "bricktracker_parts"
ON "bricktracker_sets"."id" IS NOT DISTINCT FROM "bricktracker_parts"."id"
LEFT JOIN "rebrickable_parts"
ON "bricktracker_parts"."part" IS NOT DISTINCT FROM "rebrickable_parts"."part"
AND "bricktracker_parts"."color" IS NOT DISTINCT FROM "rebrickable_parts"."color_id"
GROUP BY
"bricktracker_sets"."set",
"bricktracker_parts"."part",
"bricktracker_parts"."color"
) "unique_set_parts"
GROUP BY "unique_set_parts"."set"
) "null_sums"
WHERE "null_rgb" > 0
OR "null_transparent" > 0
OR "null_url" > 0
) "null_join"
ON "rebrickable_sets"."set" IS NOT DISTINCT FROM "null_join"."set"