La variabile @tab va sostituita con il nome delle tua tabella
Questa funziona sicuramente su MS SQL Server.
Fa il conteggio degli ingredienti fino a 6, ma espandendola a 20 (io non
me la sono sentita :)) li prenderebbe tutti.
select D.Ingrediente, COUNT(D.ID) as Conteggio
from (
select C.ID, cast(C.Ingrediente1 as varchar) as Ingrediente
from (
On Thu, 15 Jun 2023, Diego Zuccato wrote:
Uhm... Il DB è denormalizzato, e questo rende complicato fare queste query.
il DB non lo puoi toccare, o meglio, quel campo ingredienti deve restare
come è. Tuttavia si può fare una semplificazione: siccome gli ingredienti
sono messi in ordine di impo
Uhm... Il DB è denormalizzato, e questo rende complicato fare queste
query. Anzi, temo che in SQL non si riescano a fare...
Avresti dovuto usare più tabelle, tipo:
- ingredienti [id, nome]
- cene [id, commensali, data]
- ricette [id, ingrediente, cena]
con ingrediente->ingredienti.id e cena->cen
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
)
SELEC
Ni. La risposta giusta è che i db non si fanno a quel modo. La risposta
lunga è che puoi trasformare il campo in json (',' con '","' su
json_array(Ingredienti)) e poi con json_table() ottenere una struttura
simile a come sarebbe un join con una tabella degli ingredienti (che è come
andrebbe fatto).
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 "ingredi
7 matches
Mail list logo