如何比较sql中相同条件的两个实例?
我有以下表格:如何比较sql中相同条件的两个实例?,sql,Sql,我有以下表格: CREATE TABLE researcher ( rid PRIMARY KEY, name, institution, city, country ) CREATE TABLE paper ( title PRIMARY KEY, journal, volume, number, year ) CREATE TABLE author ( resid FOREIGN KEY REF
CREATE TABLE researcher
(
rid PRIMARY KEY,
name,
institution,
city,
country
)
CREATE TABLE paper
(
title PRIMARY KEY,
journal,
volume,
number,
year
)
CREATE TABLE author
(
resid FOREIGN KEY REFERENCES researcher.rid,
title FOREIGN KEY REFERENCES paper.title
)
我需要在SQL查询中列出2019年发表论文比2018年更多的期刊
我试过这个:
SELECT
journal
FROM
paper
GROUP BY
journal
HAVING
COUNT(title)
WHERE
year = 2019 > year = 2018
既然我不能有
条件>条件
,我该如何解决这个问题 使用条件表达式
SELECT journal
FROM PAPER
GROUP BY journal
HAVING SUM(CASE WHEN year = 2019 THEN 1 ELSE 0 END) > SUM(CASE WHEN year = 2018 THEN 1 ELSE 0 END);
请记住,在SQL中,
SELECT
语句的逻辑顺序实际上是:
HAVING
子句,而我更喜欢使用外部查询,从而在单个查询中实现这一点)
SELECT
journal,
[year]
COUNT( CASE WHEN [year] = 2018 THEN 1 END ) AS PaperCountIn2018,
COUNT( CASE WHEN [year] = 2019 THEN 1 END ) AS PaperCountIn2019
FROM
paper
GROUP BY
journal,
[year]
SELECT
journalPaperCounts.*
FROM
(
SELECT
journal,
[year]
COUNT( CASE WHEN [year] = 2018 THEN 1 END ) AS PaperCountIn2018,
COUNT( CASE WHEN [year] = 2019 THEN 1 END ) AS PaperCountIn2019
FROM
paper
GROUP BY
journal,
[year]
) AS journalPaperCounts
WHERE
journalPaperCounts.PaperCountIn2018 > PaperCountIn2019