子查询必须 return 单行
Subquery must return a single row
当我开始这个查询时,我得到了这个错误:
AnalysisException: Subquery must return a single row: (SELECT round(c1.feb15 + c1.nov15 + c1.dec15) FROM suivisousse.compteur2015)
查询:
SELECT
c2.compteur,
((c1.feb15 + c1.nov15 + c1.dec15) * 100 /
(SELECT ROUND(c1.feb15 + c1.nov15 + c1.dec15) FROM compteur2015))
FROM
compteur2015 c1, compteur c2
WHERE
c1.compteur = c2.compteur
GROUP BY
c2.compteur
您的内部 select 查询 select round(c1.feb15+c1.nov15+c1.dec15) from compteur2015
返回超过 1 条记录。确保您的内部查询只返回一条有效记录。
试试这个。
select c2.compteur, ((c1.feb15+c1.nov15+c1.dec15)*100 / (select round(c1.feb15+c1.nov15+c1.dec15) from compteur2015 c15 where c1.compteur = c15.compteur ))
from compteur2015 c1, compteur c2
group by c2.compteur
不确定您要实现的目标。您似乎不需要子查询。
试试这个:
SELECT
c2.compteur,
(c1.feb15 + c1.nov15 + c1.dec15) * 100 / ROUND(c1.feb15 + c1.nov15 + c1.dec15)
FROM compteur2015 c1
INNER JOIN compteur c2
ON c1.compteur = c2.compteur
GROUP BY
c2.compteur
您可能正在尝试编写:
SELECT c2.compteur,
( SUM(c1.feb15 + c1.nov15 + c1.dec15) * 100 /
(SELECT SUM(c1.feb15 + c1.nov15 + c1.dec15) FROM compteur2015)
)
FROM compteur2015 c1 JOIN
compteur c2
ON c1.compteur = c2.compteur
GROUP BY c2.compteur;
然而,这更简单地写为:
SELECT c2.compteur,
( SUM(c1.feb15 + c1.nov15 + c1.dec15) * 100 /
SUM(SUM(c1.feb15 + c1.nov15 + c1.dec15)) OVER ()
)
FROM compteur2015 c1 JOIN
compteur c2
ON c1.compteur = c2.compteur
GROUP BY c2.compteur;
当我开始这个查询时,我得到了这个错误:
AnalysisException: Subquery must return a single row:
(SELECT round(c1.feb15 + c1.nov15 + c1.dec15) FROM suivisousse.compteur2015)
查询:
SELECT
c2.compteur,
((c1.feb15 + c1.nov15 + c1.dec15) * 100 /
(SELECT ROUND(c1.feb15 + c1.nov15 + c1.dec15) FROM compteur2015))
FROM
compteur2015 c1, compteur c2
WHERE
c1.compteur = c2.compteur
GROUP BY
c2.compteur
您的内部 select 查询 select round(c1.feb15+c1.nov15+c1.dec15) from compteur2015
返回超过 1 条记录。确保您的内部查询只返回一条有效记录。
试试这个。
select c2.compteur, ((c1.feb15+c1.nov15+c1.dec15)*100 / (select round(c1.feb15+c1.nov15+c1.dec15) from compteur2015 c15 where c1.compteur = c15.compteur ))
from compteur2015 c1, compteur c2
group by c2.compteur
不确定您要实现的目标。您似乎不需要子查询。
试试这个:
SELECT
c2.compteur,
(c1.feb15 + c1.nov15 + c1.dec15) * 100 / ROUND(c1.feb15 + c1.nov15 + c1.dec15)
FROM compteur2015 c1
INNER JOIN compteur c2
ON c1.compteur = c2.compteur
GROUP BY
c2.compteur
您可能正在尝试编写:
SELECT c2.compteur,
( SUM(c1.feb15 + c1.nov15 + c1.dec15) * 100 /
(SELECT SUM(c1.feb15 + c1.nov15 + c1.dec15) FROM compteur2015)
)
FROM compteur2015 c1 JOIN
compteur c2
ON c1.compteur = c2.compteur
GROUP BY c2.compteur;
然而,这更简单地写为:
SELECT c2.compteur,
( SUM(c1.feb15 + c1.nov15 + c1.dec15) * 100 /
SUM(SUM(c1.feb15 + c1.nov15 + c1.dec15)) OVER ()
)
FROM compteur2015 c1 JOIN
compteur c2
ON c1.compteur = c2.compteur
GROUP BY c2.compteur;