Подзапрос должен возвращать одну строку - PullRequest
1 голос
/ 30 мая 2019

Когда я запускаю этот запрос, я получаю эту ошибку:

AnalysisException: подзапрос должен возвращать одну строку: (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

Ответы [ 4 ]

1 голос
/ 30 мая 2019

Вы, вероятно, пытаетесь написать это:

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;
0 голосов
/ 30 мая 2019

Попробуйте это.

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
0 голосов
/ 30 мая 2019

Не уверен, что вы пытаетесь достичь. Кажется, вам не нужен подзапрос.

Попробуйте это:

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
0 голосов
/ 30 мая 2019

Ваш внутренний запрос выбора select round(c1.feb15+c1.nov15+c1.dec15) from compteur2015, возвращающий более 1 записи.Убедитесь, что ваш внутренний запрос вернул только одну действительную запись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...