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:
x
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