Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将查询与公共分组依据参数合并_Sql - Fatal编程技术网

Sql 将查询与公共分组依据参数合并

Sql 将查询与公共分组依据参数合并,sql,Sql,我构建了三个SQL查询,它们作用于一组大约八个表。这三个参数中的每一个在其GROUPBY子句中都有相同的参数。我正在尝试合并这三个查询,以生成一个输出表,尽管我尝试的一切似乎都会破坏工作基础查询 我想要一个输出,看起来像 [heading] [query1 output column] [query2 output column] [query3 output column] [heading]列是GROUPBY子句中用于三个现有查询的现有参数 我意识到我在这里展示了我的新能力,尽管我被卡住了

我构建了三个SQL查询,它们作用于一组大约八个表。这三个参数中的每一个在其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函数。当你发布查询时,你也应该发布你的尝试和错误。