Se usi PostgreSQL si, la funzione "string_to_array" crea un array a
partire da una stringa e "unnest" crea una riga per ogni elemento
dell'array, sul quale fare ground by. Per esempio:
WITH ingredienti AS (
SELECT unnest(string_to_array(ingredienti, ' ')) AS ingrediente
FROM menu
)
SELECT I.ingrediente, count(*)
FROM ingredienti I
GROUP BY 1
;
Con altri database più sfigati, non saprei.
federico
On 15/06/23 13:48, Leonardo Boselli wrote:
Ho un database con colonne ID[integer], Ingredienti[text],
commensali[float], data[datetime].
Il campo ingredientoi contiene una lista (tra 1 e 20 valori, separati da
spazio) degli ingredienti presenti per oltre il 5% del menu.
Domadona: c'è un modo di estrarre una tabella che mi dia "ingrediente" e
"frequenza" ossia ogni ingrediente in quante cene è statao presente ?
(ovviamante un group by ingredienti non funziona in quanto un rtecord
potrebbe avere «pasta pomodoro fungo maiale mela» un altre «riso fungo
prezzemolo maiale» e quindi in uscita dovrei avere maiale:2 fungo:2
pasta:1 pomodoro:1 ...)
C'è un modo diretto restando in una query sql ?
--
Leonardo Boselli
Firenze, Toscana, Europa