I am quite new to SQL. I couldn’t find solution and I want your expertise here.
I have one table “boxes” and contains the color and type and condition. I want to get the number of types per color WHERE Condition = ‘NEW’. Thanks in advance 🙂
My tale looks like that:
Boxes COLOR TYPE CONDITION red x NEW green y NEW green x NEW blue c OLD red b OLD red a OLD
I want to put the data from here into another table called “ColorPerType”
expected output:
ColorPerType Color NumberOfTypes red 1 green 2 blue 0
Advertisement
Answer
You need a SELECT...INTO
statement if ColorPerType
does not exist:
select color, sum(case when condition = 'new' then 1 else 0 end) as NumberOfTypes into ColorPerType from boxes group by color
See the demo.
If the table ColorPerType
already exists use this:
insert into ColorPerType (color, NumberOfTypes) select color, sum(case when condition = 'new' then 1 else 0 end) as NumberOfTypes from boxes group by color
See the demo.
Results:
ColorPerType
table
> color | NumberOfTypes > :---- | ------------: > blue | 0 > green | 2 > red | 1