уникальные строки с COUNT и столбцом BLOB - DB2 - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть один столбец BLOB, который я хочу выбрать одновременно с другим столбцом, и COUNT количества связанных строк в другой таблице. Вот что у меня есть:

SELECT locations.id, locations.name, photo,
    COUNT(items.id) OVER (PARTITION BY locations.id) AS num_items
FROM locations
LEFT OUTER JOIN items ON locations.id = items.location_id
ORDER BY locations.name ASC

photo - столбец BLOB. Этот запрос получает все нужные мне данные, но я вижу x строк для каждого location, где x - это число item строк, связанных с location.

Итак, я получаю:

id          name          photo          num_items
1           location1                    3
1           location1                    3
1           location1                    3
2           location2                    1
3           location3                    2
3           location3                    2
4           location4                    0

Что я хочу:

id          name          photo          num_items
1           location1                    3
2           location2                    1
3           location3                    2
4           location4                    0

Проблема в том, что вы не можете сделать DISTINCT, GROUP BY или MIN для столбца BLOB.

1 Ответ

1 голос
/ 03 апреля 2012

Я всегда, кажется, выясняю ответ сразу после публикации здесь.: P

SELECT location_data.*, photo
FROM (
    SELECT locations.id, locations.name, COUNT(DISTINCT items.id) AS num_items
    FROM locations
    LEFT OUTER JOIN items ON locations.id = items.location_id
    GROUP BY locations.id, locations.name
) location_data
INNER JOIN (
    SELECT locations.id, photo
    FROM locations
) photo_data ON location_data.id = photo_data.id
ORDER BY name ASC
...