У меня следующие неудобства с SQL.
Я должен перечислить содержание, воспроизведенное более 3 раз в каждом месяце 2018 года и менее 2 в месяцы, которые идут в 2019 году.
Структура для этого следующая:
CREATE TABLE content (
content INT NOT NULL,
CONSTRAINT PK_Codcontent PRIMARY KEY(Codcontent)
)
CREATE TABLE Reproduced (
Coduser INT NOT NULL,
Codcontent INT NOT NULL,
CONSTRAINT PK_Coduser PRIMARY KEY(Coduser, Codcontent),
CONSTRAINT FK_Codusr FOREIGN KEY(Coduser) REFERENCES Perfil(Codpuser),
CONSTRAINT FK_Codcont FOREIGN KEY(Codcontent) REFERENCES Contenido(Codcontent)
)
Я создал следующий вид, чтобы перечислить содержание, репродукции и месяцы за весь год, но дело в том, что я не знаю, как отфильтровать тех, у кого более 3 репродукций за каждый месяц.
CREATE VIEW TODOSLOSMESES2018
AS
SELECT
R.Codcontenido
, count(*)Reproducciones
, count(Distinct Month(R.fecha)) as 'Meses'
FROM (
SELECT *
FROM Reproduce
WHERE fecha>='20180101' AND fecha<='20181231')R
group by Codcontenido
HAVING count(Distinct Month(R.fecha))=12