Что такое кардинальность () в presto sql? - PullRequest
0 голосов
/ 01 мая 2020

Кто-нибудь знает назначение функции кардинальности () в sql? Как это работает с функцией unnest?

SELECT story_id, 
    cardinality(image_tags) AS image_tags, 
    cardinality(comment_tags) as comment_tags
    from 
    story_tab
    CROSS JOIN UNNEST(data.images) t (url, item_tags, comment_tags)

1 Ответ

0 голосов
/ 01 мая 2020

cardinality() - как объяснено в документации - возвращает размер массива.

В этом случае image_tags и comment_tags являются столбцами массива в data.images. Это подсчитывает размер этих массивов для каждого URL.

Я должен отметить, что data.images сам по себе является массивом, поэтому каждое изображение имеет эти теги.

Итак, это возвращает количество тегов изображений и количество тегов комментариев для каждого изображения в data. Я бы порекомендовал также включить информацию об изображении или агрегировать по истории.

...