[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Ricetta (per query ma anche per mangiare)



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


Reply to: