Documente Academic
Documente Profesional
Documente Cultură
Care sunt albumele formației `Beatles` care s-au vândut în 2010 și 2011, dar nu și în 2015?
select titlu_album
from formatii f inner join discografie d on f.id_formatie=d.id_formatie
inner join vanzari_discuri v on d.id_album=v.id_album
where case when (v.an='2010') and den_formatie='Beatles' then true else false end
intersect
select titlu_album
from formatii f inner join discografie d on f.id_formatie=d.id_formatie
inner join vanzari_discuri v on d.id_album=v.id_album
where case when (v.an='2011') and den_formatie='Beatles' then true else false end
except
select titlu_album
from formatii f inner join discografie d on f.id_formatie=d.id_formatie
inner join vanzari_discuri v on d.id_album=v.id_album
where case when (v.an='2015') and den_formatie='Beatles' then true else false end
și în tidyverse [1003422]:
setdiff(
intersect(
formatii %>%
filter(den_formatie == 'Beatles') %>%
inner_join(discografie) %>%
select (id_album, titlu_album) %>%
inner_join(vanzari_discuri) %>%
filter (an == 2010) %>%
select (id_album, titlu_album),
formatii %>%
filter(den_formatie == 'Beatles') %>%
inner_join(discografie) %>%
select (id_album, titlu_album) %>%
inner_join(vanzari_discuri) %>%
filter (an == 2011) %>%
select (id_album, titlu_album)
),
formatii %>%
filter(den_formatie == 'Beatles') %>%
inner_join(discografie) %>%
select (id_album, titlu_album) %>%
inner_join(vanzari_discuri) %>%
filter (an == 2015) %>%
select (id_album, titlu_album)
)
select titlu_album
from formatii f inner join discografie d on f.id_formatie=d.id_formatie
inner join vanzari_discuri v on d.id_album=v.id_album
where case when (v.an='2010') and den_formatie='Beatles' then true else false end
intersect
select titlu_album
from formatii f inner join discografie d on f.id_formatie=d.id_formatie
inner join vanzari_discuri v on d.id_album=v.id_album
where case when (v.an='2011') and den_formatie='Beatles' then true else false end
except
select titlu_album
from formatii f inner join discografie d on f.id_formatie=d.id_formatie
inner join vanzari_discuri v on d.id_album=v.id_album
where case when (v.an='2015') and den_formatie='Beatles' then true else false end
și în tidyverse [1003422]:
setdiff(
intersect(
formatii %>%
filter(den_formatie == 'Beatles') %>%
inner_join(discografie) %>%
select (id_album, titlu_album) %>%
inner_join(vanzari_discuri) %>%
filter (an == 2010) %>%
select (id_album, titlu_album),
formatii %>%
filter(den_formatie == 'Beatles') %>%
inner_join(discografie) %>%
select (id_album, titlu_album) %>%
inner_join(vanzari_discuri) %>%
filter (an == 2011) %>%
select (id_album, titlu_album)
),
formatii %>%
filter(den_formatie == 'Beatles') %>%
inner_join(discografie) %>%
select (id_album, titlu_album) %>%
inner_join(vanzari_discuri) %>%
filter (an == 2015) %>%
select (id_album, titlu_album)
)
with muzicieni_albume_yes as
(select concat(prenume_scena, ' ', nume_scena) as nume_muz, d.id_album
from muzicieni m
inner join realizare_disc r on m.id_persoana=r.id_muzician
inner join discografie d on r.id_album=d.id_album
inner join formatii f on d.id_formatie = f.id_formatie
where den_formatie='Yes'),
muzicieni_yes as
(select distinct nume_muz
from muzicieni_albume_yes),
albume_yes as
(select distinct id_album
from muzicieni_albume_yes),
produs_cartezian_muzicieni_albume_yes as
(select *
from muzicieni_yes cross join albume_yes)
select nume_muz
from muzicieni_yes
except
select nume_muz
from produs_cartezian_muzicieni_albume_yes
where (nume_muz, id_album) not in
(select nume_muz, id_album
from muzicieni_albume_yes)
order by 1
și în tidyverse [1011811]:
formatii %>%
filter(den_formatie == 'Yes') %>%
inner_join(discografie) %>%
select (id_album) %>%
inner_join(realizare_disc) %>%
inner_join(muzicieni, by = c("id_muzician" = "id_persoana")) %>%
group_by(nume_muz = paste(prenume_scena, nume_scena)) %>%
summarise (nr_albume = n()) %>%
inner_join(
formatii %>%
filter(den_formatie == 'Yes') %>%
inner_join(discografie) %>%
summarise (nr_albume = n())
) %>%
select (nume_muz) %>%
arrange(nume_muz)
with
albume_beatles as
(select titlu_album, sum(durata_sec) as durata_album
from discografie
natural join formatii
natural join alcatuire_disc
where den_formatie='Beatles'
group by titlu_album),
al_treilea_album_3_beatles as
(select durata_album from albume_beatles order by durata_album desc offset 2 limit 1)
select titlu_album, albume_beatles.durata_album
from albume_beatles inner join al_treilea_album_3_beatles
on albume_beatles.durata_album >= al_treilea_album_3_beatles.durata_album
order by 2 desc
și în tidyverse [1011217]:
formatii %>%
filter(den_formatie == 'Beatles') %>%
inner_join(discografie) %>%
inner_join(alcatuire_disc) %>%
group_by(titlu_album) %>%
summarise(durata_album = sum(durata_sec)) %>%
arrange(desc(durata_album)) %>%
distinct(durata_album) %>%
slice(1:3) %>%
inner_join(
alcatuire_disc %>%
inner_join(discografie) %>%
inner_join(formatii) %>%
filter(den_formatie == 'Beatles') %>%
group_by(titlu_album) %>%
summarise(durata_album = sum(durata_sec))
) %>%
select (titlu_album, durata_album)
select prenume_scena, nume_scena
from muzicieni m
inner join realizare_disc r on m.id_persoana=r.id_muzician
inner join discografie d on d.id_album=r.id_album inner join formatii f on f.id_formatie=d.id_f
ormatie
where case den_formatie when 'Yes' then true else false end and
titlu_album='Going For The One'
și în tidyverse [1002321]:
formatii %>%
filter (den_formatie == 'Yes') %>%
select(id_formatie) %>%
inner_join(discografie) %>%
filter (titlu_album == 'Going For The One') %>%
inner_join(realizare_disc) %>%
inner_join(muzicieni, by = c("id_muzician" = "id_persoana")) %>%
select (prenume_scena, nume_scena)
WITH albume_queen AS
(SELECT titlu_album, SUM(durata_sec) AS durata_album
FROM discografie d
NATURAL JOIN formatii
NATURAL JOIN alcatuire_disc
WHERE den_formatie='Queen'
GROUP BY titlu_album),
queen_album_max AS (
SELECT MAX(durata_album) AS durata_album FROM albume_queen)
SELECT albume_queen.*
FROM albume_queen NATURAL JOIN queen_album_max\
și în tidyverse [1010911]:
formatii %>%
filter (den_formatie == 'Queen') %>%
inner_join(discografie) %>%
inner_join(alcatuire_disc) %>%
group_by(titlu_album) %>%
summarise(durata_album = sum(durata_sec)) %>%
top_n(1, durata_album)
select MAX(nume_tara)
from tari
order by 1
limit 1
și în tidyverse [1004523]:
tari %>%
select (nume_tara) %>%
arrange(desc(nume_tara)) %>%
head(1)
select titlu_album
from discografie d
natural join realizare_disc r
inner join muzicieni m on r.id_muzician=m.id_persoana
where concat(prenume_scena,' ', nume_scena) ='Jon Anderson'
intersect
select titlu_album
from discografie d
natural join realizare_disc r
inner join muzicieni m on r.id_muzician=m.id_persoana
where concat(prenume_scena,' ', nume_scena) = 'Rick Wakeman'
și în tidyverse [1002424]:
muzicieni %>%
inner_join(realizare_disc, by = c("id_persoana" = "id_muzician")) %>%
inner_join(discografie) %>%
filter(paste(prenume_scena, nume_scena) == 'Jon Anderson') %>%
select (id_album, titlu_album) %>%
inner_join(
muzicieni %>%
inner_join(realizare_disc, by = c("id_persoana" = "id_muzician")) %>%
inner_join(discografie) %>%
filter(paste(prenume_scena, nume_scena) == 'Rick Wakeman') %>%
select (id_album, titlu_album))
SELECT discografie.*
FROM discografie NATURAL JOIN formatii
WHERE den_formatie = 'Beatles' AND an_lansare || '-' ||
ordine_an > ALL
(SELECT an_lansare || '-' || ordine_an
FROM discografie NATURAL JOIN formatii
WHERE den_formatie = 'Beatles' AND titlu_album = 'He
lp!')
ORDER BY an_lansare, ordine_an
și în tidyverse [2001119]:
discografie %>%
inner_join(
formatii %>%
filter (den_formatie == 'Beatles') %>%
select (id_formatie)) %>%
filter (titlu_album == 'Help!') %>%
transmute(id_formatie, id_ordine_help = an_lansare *
10 + ordine_an) %>%
inner_join(discografie) %>%
filter (an_lansare * 10 + ordine_an > id_ordine_help)
%>%
select (id_album, titlu_album, id_formatie, an_lansare:
coeficient_volum_vanzari) %>%
arrange(an_lansare, ordine_an)
select count(d.id_album)
from discografie d
inner join realizare_disc r on d.id_album=r.id_album
inner join muzicieni m on m.id_persoana=r.id_muzician
where concat(prenume_scena,' ', nume_scena)='Steve H
owe'
și în tidyverse [1003921]:
muzicieni %>%
filter(paste(prenume_scena, nume_scena) == 'Steve
Howe') %>%
inner_join(realizare_disc, by = c("id_persoana" = "id_
muzician")) %>%
inner_join(discografie) %>%
summarise(n = n())
<<2022050600208>> Pentru cerința [ROCK170103]:
Care este ultima piesă de pe albumul `Help!` al formației
`Beatles`?
WITH
piese_help AS (
SELECT titlu_piesa, nr_ordine
FROM alcatuire_disc
NATURAL JOIN discografie
NATURAL JOIN formatii
WHERE titlu_album='Help!' and den_formatie='Beatl
es'),
ultima_piesa_help AS (
SELECT MAX(nr_ordine) AS nr_ordine
FROM piese_help
)
SELECT titlu_piesa
FROM piese_help NATURAL JOIN ultima_piesa_help
și în tidyverse [1009311]:
formatii %>%
filter(den_formatie == 'Beatles') %>%
inner_join(discografie) %>%
filter (titlu_album == 'Help!') %>%
inner_join(alcatuire_disc) %>%
arrange (desc(nr_ordine)) %>%
head(1) %>%
select (titlu_piesa)
select prenume_real, nume_real
from muzicieni
where case substr(prenume_real,1,2) when 'Jo' THEN TR
UE ELSE FALSE END
și în tidyverse [1000816]:
muzicieni %>% filter (if_else (str_detect(prenume_real, '
^Jo'), TRUE, FALSE)) %>%
select (prenume_real, nume_real)
select titlu_album, an_lansare, ordine_an
from discografie d inner join formatii f on d.id_formatie
=f.id_formatie
where den_formatie='Beatles'
order by an_lansare, ordine_an
limit 3
și în tidyverse [1009508]:
formatii %>%
filter(den_formatie == 'Beatles') %>%
inner_join(discografie) %>%
arrange(an_lansare, ordine_an) %>%
head(3) %>%
select (titlu_album, an_lansare, ordine_an)
select titlu_album
from discografie d inner join formatii f on d.id_formatie
=f.id_formatie
where case when (an_lansare between 1970 and 1979) a
nd den_formatie='Yes' then true else false end
și în tidyverse [1001524]:
formatii %>%
filter (den_formatie == "Yes") %>%
select (id_formatie) %>%
inner_join(discografie %>%
filter (substr(an_lansare, 1, 3) == "197")) %>
%
select (titlu_album, an_lansare)
SELECT den_formatie,
ROUND(SUM (COALESCE(v1990.vanzari_usd,0)),2) AS va
nzari_1990,
ROUND(SUM (COALESCE(v1991.vanzari_usd,0)),2) AS va
nzari_1991,
ROUND(SUM (COALESCE(v1992.vanzari_usd,0)),2) AS va
nzari_1992,
ROUND(SUM (COALESCE(v1993.vanzari_usd,0)),2) AS va
nzari_1993,
ROUND(SUM (COALESCE(v1994.vanzari_usd,0)),2) AS va
nzari_1994
FROM formatii f
NATURAL JOIN discografie d
LEFT JOIN vanzari_discuri v1990 ON d.id_album = v1990
.id_album AND v1990.an = 1990
LEFT JOIN vanzari_discuri v1991 ON d.id_album = v1991
.id_album AND v1991.an = 1991
LEFT JOIN vanzari_discuri v1992 ON d.id_album = v1992
.id_album AND v1992.an = 1992
LEFT JOIN vanzari_discuri v1993 ON d.id_album = v1993
.id_album AND v1993.an = 1993
LEFT JOIN vanzari_discuri v1994 ON d.id_album = v1994
.id_album AND v1994.an = 1994
GROUP BY den_formatie
HAVING
ROUND(SUM (COALESCE(v1990.vanzari_usd,0)),2) +
ROUND(SUM (COALESCE(v1991.vanzari_usd,0)),2) +
ROUND(SUM (COALESCE(v1992.vanzari_usd,0)),2) +
ROUND(SUM (COALESCE(v1993.vanzari_usd,0)),2) +
ROUND(SUM (COALESCE(v1994.vanzari_usd,0)),2) > 0
ORDER BY den_formatie
și în tidyverse [1020014]:
formatii %>%
inner_join(discografie) %>%
select(den_formatie, id_album) %>%
inner_join(vanzari_discuri) %>%
group_by(den_formatie) %>%
summarise(
vanzari_1990 = sum(if_else(an == 1990, coalesce(v
anzari_usd,0), 0)),
vanzari_1991 = sum(if_else(an == 1991, coalesce(v
anzari_usd,0), 0)),
vanzari_1992 = sum(if_else(an == 1992, coalesce(v
anzari_usd,0), 0)),
vanzari_1993 = sum(if_else(an == 1993, coalesce(v
anzari_usd,0), 0)),
vanzari_1994 = sum(if_else(an == 1994, coalesce(v
anzari_usd,0), 0))
) %>%
filter(vanzari_1990 + vanzari_1991 + vanzari_1992 +
vanzari_1993 + vanzari_1994 > 0) %>%
arrange(den_formatie)
și în tidyverse [1001315]:
vanzari_discuri %>%
inner_join(tari) %>%
transmute (nume_tara) %>%
distinct(.)
select den_formatie, sum(vanzari_USD) as vanzari_USD
from vanzari_discuri
natural join discografie
natural join formatii
where an between 1991 and 2000
group by den_formatie
order by den_formatie
și în tidyverse [2001211]:
vanzari_discuri %>%
filter (an >= 1991 & an <= 2000 ) %>%
select (-cod_tara) %>%
inner_join(discografie) %>%
inner_join(formatii) %>%
group_by(den_formatie) %>%
summarise (vanzari_usd = sum(vanzari_usd)) %>%
arrange(den_formatie)
with
membri_beatles as (
select distinct m.*
from muzicieni m
inner join realizare_disc r on m.id_persoana=r.id_muzicia
n
inner join discografie d on r.id_album=d.id_album
inner join formatii f on d.id_formatie=f.id_formatie
where f.den_formatie='Beatles'
),
trei_date as (
select data_nastere
from membri_beatles
order by data_nastere
limit 3
)
select membri_beatles.*
from membri_beatles natural join trei_date
order by data_nastere
și în tidyverse [1010110]:
formatii %>%
filter (den_formatie == 'Beatles') %>%
inner_join(discografie) %>%
inner_join(realizare_disc) %>%
transmute(id_persoana = id_muzician) %>%
inner_join(muzicieni) %>%
distinct(.) %>%
filter (data_nastere %in%
(formatii %>%
filter (den_formatie == 'Beatles') %>%
inner_join(discografie) %>%
inner_join(realizare_disc) %>%
inner_join(muzicieni, by = c("id_muzician" =
"id_persoana")) %>%
distinct (id_muzician, data_nastere) %>%
arrange (data_nastere) %>%
select (data_nastere) %>%
head(3)) [["data_nastere"]] ) %>%
arrange(data_nastere)
select titlu_album from discografie
where id_album in
(select id_album from realizare_disc where id_muzician i
n
(select id_persoana from muzicieni
where concat(prenume_scena,' ', nume_scena) = 'Jon A
nderson')
intersect
select id_album from realizare_disc where id_muzician i
n
(select id_persoana from muzicieni
where concat(prenume_scena,' ', nume_scena) ='Rick W
akeman')
)
și în tidyverse [2000716]:
muzicieni %>%
filter(paste(prenume_scena, nume_scena) == 'Jon An
derson') %>%
inner_join(realizare_disc, by = c('id_persoana' = 'id_m
uzician')) %>%
select(id_album) %>%
inner_join(realizare_disc) %>%
inner_join(muzicieni, by = c('id_muzician' = 'id_persoa
na')) %>%
filter(paste(prenume_scena, nume_scena) == 'Rick W
akeman') %>%
select (id_album) %>%
inner_join(discografie) %>%
distinct (titlu_album)
SELECT *
FROM muzicieni
WHERE Data_Nastere < TO_DATE( '1960-01-01', 'YYYY-
MM-DD')
și în tidyverse [1000321]:
muzicieni %>%
filter (data_nastere < as.Date('1960-01-01'))
select a.nume_tara
from tari a
inner join tari b on a.regiune=b.regiune
where case when b.nume_tara = 'Romania' then true els
e false end
și în tidyverse [1006421]:
tari %>%
filter (nume_tara == 'Romania') %>%
select (regiune) %>%
inner_join(tari) %>%
select (nume_tara) %>%
arrange(nume_tara)
tari %>%
filter (nume_tara == 'Romania') %>%
select (regiune) %>%
inner_join(tari) %>%
select (nume_tara) %>%
arrange(nume_tara)
select titlu_album, count(titlu_piesa)
from alcatuire_disc a
inner join discografie d on a.id_album=d.id_album
inner join formatii f on d.id_formatie=f.id_formatie
where den_formatie='Beatles'
group by titlu_album
having count(titlu_piesa) >
(select count(titlu_piesa)
from alcatuire_disc a
inner join discografie d on a.id_album=d.id_album
inner join formatii f on d.id_formatie=f.id_formatie
where den_formatie='Beatles' and titlu_album='Rubber
Soul')
order by 2 desc
și în tidyverse [1010512]:
formatii %>%
filter (den_formatie == 'Beatles') %>%
inner_join(discografie) %>%
inner_join(alcatuire_disc) %>%
group_by(titlu_album) %>%
summarise (nr_piese = n()) %>%
mutate (nr_piese_rs = if_else(titlu_album == 'Rubber
Soul', nr_piese, 0L)) %>%
mutate(nr_piese_rs_ok = max(nr_piese_rs)) %>%
filter (nr_piese > nr_piese_rs_ok) %>%
select (titlu_album, nr_piese) %>%
arrange(desc(nr_piese))