У меня есть следующие данные:
movie (string) genres (string[])
"titanic" ["romance", "historical", "drama"]
"spider-man" ["sci-fi", "action"]
"casablanca" ["romance", "classic"]
Существует ли "стандартный" способ - по крайней мере, концептуально - агрегировать в поле массива?Например, сделать что-то вроде:
SELECT genres, count(*) GROUP BY genres ORDER BY count(*) DESC, genres
Если мне кажется, что результат должен быть примерно таким:
genres count
"romance" 2
"action" 1
"classic" 1
"drama" 1
"historical" 1
"sci-fi" 1
Это то, как большинство движков дБ агрегируют в поле массива?Если да (или если нет), не могли бы вы привести несколько примеров того, как агрегации будут выполняться в этом движке?
Обычно, когда я это делаю, я получаю жалобы и вынужден вручную выполнить это преобразование, например, вПанды:
df=pd.DataFrame({'movie':['titanic', 'spider-man', 'casablanca'], 'genres': [['romance', 'historical', 'drama'], ['sci-fi', 'action'],['romance','classic']]})
df.groupby('genres').first() # will error, or converting to tuple will not unnest the array