Files
sql/vector.sql

61 lines
2.3 KiB
MySQL
Raw Normal View History

2025-09-02 22:59:01 +02:00
CREATE TABLE produits (
id SERIAL PRIMARY KEY,
nom TEXT,
caracteristiques VECTOR(6)
);
INSERT INTO produits (nom, caracteristiques) VALUES
('Tomate', '[0.6, 0.3, 0.3, 1.0, 0.5, 1.0]'),
('Concombre', '[0.2, 0.1, 0.9, 1.0, 0.0, 0.0]'),
('Courgette', '[0.3, 0.1, 0.5, 1.0, 0.0, 0.0]'),
('Carotte', '[0.5, 0.1, 0.8, 0.5, 0.0, 1.0]'),
('Poivron', '[0.4, 0.2, 0.6, 1.0, 0.0, 1.0]'),
('Aubergine', '[0.2, 0.1, 0.4, 1.0, 0.0, 0.0]'),
('Pomme', '[0.8, 0.3, 0.9, 1.0, 1.0, 1.0]'),
('Poire', '[0.7, 0.2, 0.7, 1.0, 1.0, 0.0]'),
('Fraise', '[0.9, 0.4, 0.7, 1.0, 1.0, 1.0]'),
('Cerise', '[0.8, 0.3, 0.6, 1.0, 1.0, 1.0]'),
('Citron', '[0.2, 1.0, 0.6, 1.0, 1.0, 1.0]'),
('Orange', '[0.7, 0.6, 0.7, 1.0, 1.0, 1.0]'),
('Banane', '[0.9, 0.1, 0.2, 1.0, 1.0, 0.0]'),
('Raisin', '[0.8, 0.3, 0.5, 1.0, 1.0, 1.0]'),
('Pastèque', '[0.8, 0.2, 0.6, 1.0, 1.0, 1.0]'),
('Melon', '[0.9, 0.2, 0.5, 1.0, 1.0, 1.0]'),
('Betterave', '[0.5, 0.1, 0.4, 0.0, 0.0, 1.0]'),
('Radis', '[0.2, 0.3, 0.9, 0.5, 0.0, 1.0]'),
('Brocoli', '[0.1, 0.1, 0.6, 0.0, 0.0, 0.0]'),
('Chou-fleur', '[0.1, 0.1, 0.7, 0.0, 0.0, 0.0]');
2025-09-14 11:40:14 +02:00
alter table produits
add column nutrition vector(10);
UPDATE produits
SET nutrition = ARRAY[energie, proteines, glucide, sucre, graisse, graisse_saturee, sel, fibres, nutriscore, additifs]::vector;
2025-09-14 13:26:27 +02:00
with selection as (
select op.id, product_name, brands, "energy-kcal_100g", fat_100g, "saturated-fat_100g",
"carbohydrates_100g", "sugars_100g", "proteins_100g", "salt_100g", "fiber_100g",
"nutriscore_score", "additives_n", string_to_array(additives_en, ','),
"potassium_100g", "calcium_100g", "vitamin-a_100g", "vitamin-c_100g",
main_category_en
from openfoodfacts_cleaned op
left join produit p on p.id = op.id
where brands like 'Familia%'
and p.id is null
and "energy-kcal_100g" is not null
and proteins_100g is not null
and fat_100g is not null
and "saturated-fat_100g" is not null
and carbohydrates_100g is not null
and sugars_100g is not null
and salt_100g is not null
and nutriscore_score is not null
)
insert into produit (id, nom, marque,
energie, graisse, graisse_saturee,
glucide, sucre, proteines, sel,
fibres, nutriscore, additifs, additifs_list,
potassium, calcium, vitamin_a, vitamin_c, categorie)
select * from selection;