获取sql中列的和
我的问题是获取sql中列的和,sql,oracle,Sql,Oracle,我的问题是 SELECT AIP.TERMID, (SELECT COUNT(RAU.TERMNAME) FROM REPORT_API_USAGE RAU WHERE RAU.TERMID = AIP.TERMID AND RAU.VOCID = 4) AS page_views FROM REPORT_API_PAGES AIP GROUP BY AIP.TERMID 我需要获取列页面视图的总数。我怎样才能得到它?请帮忙。PHP和ORACLE 我
SELECT
AIP.TERMID,
(SELECT COUNT(RAU.TERMNAME)
FROM REPORT_API_USAGE RAU
WHERE RAU.TERMID = AIP.TERMID AND RAU.VOCID = 4) AS page_views
FROM REPORT_API_PAGES AIP
GROUP BY AIP.TERMID
我需要获取列页面视图的总数
。我怎样才能得到它?请帮忙。PHP和ORACLE
我需要总的页面浏览量为2(1+1)。我需要在不更改现有查询的情况下将其作为新行获取
SELECT
AIP.TERMID,
(SELECT COUNT(RAU.TERMNAME)
FROM REPORT_API_USAGE RAU
WHERE RAU.TERMID = AIP.TERMID AND RAU.VOCID = 4) AS page_views,
(SELECT SUM(COUNT(RAU.TERMNAME))
FROM REPORT_API_USAGE RAU
WHERE RAU.VOCID = 4 GROUP BY AIP.TERMID) AS page_views
FROM REPORT_API_PAGES AIP
GROUP BY AIP.TERMID`
我尝试了这个,但是给出了一个结果4
,而不是2
你到底想展示什么?每个TERMID的页面浏览总量
SELECT aip.TERMID,
COUNT(rau.TERMNAME) AS PAGE_VIEWS
FROM REPORT_API_PAGES aip
JOIN REPORT_API_USAGE rau ON rau.TERMID = aip.TERMID
WHERE rau.VOCID = 4
GROUP BY aip.TERMID
但是,对于当前查询,甚至不需要联接(除非您在报告API\u使用情况中有行,但在报告API\u页面中没有父行
)
编辑:因此,根据您问题的更新,如果您只想要总的页面浏览量,您可以使用
SELECT COUNT(rau.TERMNAME) AS page_views
FROM REPORT_API_PAGES aip
JOIN REPORT_API_USAGE rau ON rau.TERMID = aip.TERMID
WHERE rau.VOCID = 4
(连接不是必需的,它允许您仅统计报表API\u页面
表中定义了TERMID
的页面的页面视图)
EDIT2:基于您的第二次更新,我建议您在子查询中使用()上的SUM(页面视图)
SELECT TERMID,
PAGE_VIEWS,
SUM(PAGE_VIEWS) OVER () AS TOTAL_PAGE_VIEWS
FROM (
SELECT aip.TERMID,
COUNT(rau.TERMNAME) AS PAGE_VIEWS
FROM REPORT_API_PAGES aip
LEFT OUTER JOIN REPORT_API_USAGE rau ON (rau.TERMID = aip.TERMID AND rau.VOCID = 4)
GROUP BY aip.TERMID)
显然,您也可以用原始查询替换子查询
SELECT AIP.TERMID,
(
select count(RAU.TERMNAME)
FROM
REPORT_API_USAGE RAU
WHERE
RAU.TERMID = AIP.TERMID AND RAU.VOCID = 4
) as page_views
from
REPORT_API_PAGES AIP
GROUP BY
AIP.TERMID
试着把它改成这样
select sum(page_views)
(
SELECT AIP.TERMID,
(
select count(RAU.TERMNAME)
FROM
REPORT_API_USAGE RAU
WHERE
RAU.TERMID = AIP.TERMID AND RAU.VOCID = 4
) as page_views
from
REPORT_API_PAGES AIP
GROUP BY
AIP.TERMID
) from dual;
请添加一些数据。另外:您正在使用哪些数据库管理系统?博士后?Oracle?在您的示例中是NOSUM
有一个计数这是打字错误吗?您在查询中使用的是计数
,我得到的是单个计数。我需要得到所有单个计数的总和。通过他的加入,如果aip
和rau
不包含相同的TERMID
他可能会得到更多的行,但每个TERMID的页面浏览量总是相同的(这是我在括号中指定的)
select sum(page_views)
(
SELECT AIP.TERMID,
(
select count(RAU.TERMNAME)
FROM
REPORT_API_USAGE RAU
WHERE
RAU.TERMID = AIP.TERMID AND RAU.VOCID = 4
) as page_views
from
REPORT_API_PAGES AIP
GROUP BY
AIP.TERMID
) from dual;