Sql 将查询与公共分组依据参数合并
我构建了三个SQL查询,它们作用于一组大约八个表。这三个参数中的每一个在其GROUPBY子句中都有相同的参数。我正在尝试合并这三个查询,以生成一个输出表,尽管我尝试的一切似乎都会破坏工作基础查询 我想要一个输出,看起来像Sql 将查询与公共分组依据参数合并,sql,Sql,我构建了三个SQL查询,它们作用于一组大约八个表。这三个参数中的每一个在其GROUPBY子句中都有相同的参数。我正在尝试合并这三个查询,以生成一个输出表,尽管我尝试的一切似乎都会破坏工作基础查询 我想要一个输出,看起来像 [heading] [query1 output column] [query2 output column] [query3 output column] [heading]列是GROUPBY子句中用于三个现有查询的现有参数 我意识到我在这里展示了我的新能力,尽管我被卡住了
[heading] [query1 output column] [query2 output column] [query3 output column]
[heading]列是GROUPBY子句中用于三个现有查询的现有参数
我意识到我在这里展示了我的新能力,尽管我被卡住了,并且已经在同一个错误的圈子里转了太多次
编辑*
我认为代码剪报会让人困惑,尽管这里有一个略为缩写的版本
SELECT
TITLE_COUNT.index,
COUNT (TITLE_COUNT.TTOTAL) AS TITLES,
COUNT (AUTHOR_COUNT.TTOTAL) AS AUTHOR
FROM(
SELECT
index, title, date,
COUNT (*) AS TTOTAL
FROM (SELECT DISTINCT index, title, date FROM TableP P) P
GROUP BY
index, title, date
ORDER BY
index
) AS TITLE_COUNT,
(
SELECT
index,
COUNT (*) AS TTOTAL
FROM (SELECT DISTINCT index, FROM TableM M) M
GROUP BY
index
ORDER BY
index
) AS AUTHOR_COUNT
WHERE
TITLE_COUNT.index = AUTHOR_COUNT.index
GROUP BY
TITLE_COUNT.index
;
我上面的问题是,输出表中的count列被相乘。例如,站在查询旁边给我一些
TITLE
index count
001 12
002 10
003 15
AUTHOR
index count
001 2
002 4
003 6
虽然我上面的查询结果是
001 24
002 40
003 90
不要重复计算:
SELECT
TITLE_COUNT.index,
TITLE_COUNT.TTOTAL AS TITLES,
AUTHOR_COUNT.TTOTAL AS AUTHOR
FROM(
SELECT
index, title, date,
COUNT (*) AS TTOTAL
FROM (SELECT DISTINCT index, title, date FROM TableP P) P
GROUP BY
index, title, date
ORDER BY
index
) AS TITLE_COUNT
FULL OUTER JOIN (
SELECT
index,
COUNT (*) AS TTOTAL
FROM (SELECT DISTINCT index, FROM TableM M) M
GROUP BY
index
ORDER BY
index
) AS AUTHOR_COUNT
ON TITLE_COUNT.index = AUTHOR_COUNT.index
GROUP BY
TITLE_COUNT.index
首先发布您拥有的SQL代码。使用case when和SUM函数。当你发布查询时,你也应该发布你的尝试和错误。