Групповая функция не является одногруппной oracle

Обновлено: 04.07.2024

Oracle странная ошибка: неожиданная ошибка ORA-00937: нет функции группы с одной группой Выполнение из приложения VB6 с использованием Adodb с использованием Provider=MSDAORA.1 Запрос: Select Max(SNO) as SRNO From Orders Where OrderDate = '30-Jan-2009' Ошибка: Неожиданные ORA-00937 ошибка: не.

Почему этот запрос не работает должным образом? SELECT e.* FROM enrolled e FULL OUTER JOIN student s ON e.studentid = s.sid WHERE ((e.quarter = 'Fall') OR (e.quarter = 'Spring')) GROUP BY e.studentid HAVING count(e.studentid) == 1; Ошибка, которая происходит: ORA-00937: не одногруппная групповая.

Я не понимаю вашу группу. Ты уверен, что хочешь этого?

Интуитивно это выглядит как + max(annual_basic_salary)

Подойдет ли что-то подобное? (Я сократил ваши таблицы; мне не хотелось слишком много печатать.)

Я не исправил ваш запрос, а скорее написал новый. Я не знаю, почему вы использовали функцию COUNT; что вы посчитали? Если вы все равно хотите использовать свой код, посмотрите, что @LoztInSpace написал & мой комментарий под этим ответом.

Кроме того, я попытался правильно объединить таблицы и использовать псевдонимы таблиц для всех столбцов. Я предлагаю вам сделать то же самое в будущем. Без него трудно догадаться, к какой таблице принадлежат эти столбцы.

Похожие вопросы:

На этом я получаю ошибку ERROR в строке 1: ORA-00937: не одногруппная групповая функция. Может ли кто-нибудь помочь мне в этом, я не знаком с sql . select cerps_accnt_code, cost_centre.

Я работаю над запросом Hibernate. Этот запрос отлично работает с MySQL, но терпит неудачу в Oracle и postgreSQL. SELECT MIN(t.startTime) AS StartTime, MAX(t.endTime) AS EndTime, (SELECT.

Я пытаюсь найти учетные записи типа 'Savings', но следующий отрывок кода выдает мне ошибку ORA-00937: not a single-group group function - кто-нибудь знает, почему я получаю эту ошибку? SELECT b.bID.

Oracle странная ошибка: неожиданная ошибка ORA-00937: нет функции группы с одной группой Выполнение из приложения VB6 с использованием Adodb с использованием Provider=MSDAORA.1 Запрос: Select.

Почему этот запрос не работает должным образом? SELECT e.* FROM enrolled e FULL OUTER JOIN student s ON e.studentid = s.sid WHERE ((e.quarter = 'Fall') OR (e.quarter = 'Spring')) GROUP BY.

Я пытаюсь спроектировать самый высокий средний показатель GPA студентов по специальностям. Это работает, если я не SELECT major и не оставляю его. Вот что у меня есть: SELECT MAX(avg_gpa), major.

select au_lname, au_fname, count(titles.title) from titleauthor join titles ON titles.title_id=titleauthor.title_id join authors ON authors.au_id=titleauthor.au_id having COUNT(titles.title) > 2;.

Мне нужно узнать количество людей по дате. У меня есть эта ошибка: ORA-00937 не одногруппная групповая функция запрос выглядит следующим образом SELECT DISTINCT DATA,count(PERSON) FROM table where.

DECLARE v_department_name VARCHAR(50); v_department_manager VARCHAR(50); v_totalsalary NUMBER(5); BEGIN SELECT departments.department_name, concat(employees.first_name, employees.last_name).

select location, home_team_name, count(case when extract(year from match_date)='2018' and extract(month from match_date)=1 then 1 end) january_2018, count(case when extract(year from.

У меня есть следующий код, который вызывает исключение Ора-00979: не выражение group by. Даже если я удалю предложение group by , оно все равно даст ошибку ORA-00937: не одногруппная групповая функция. Я новичок в этой области и не имею достаточных знаний о соединениях и т. д. Я буду признателен.

Как сказал Рене, вы не можете выбирать столбцы, которые не входят в предложение group by.

Если вы хотите выбрать эти столбцы, но только для studentid s, которые имеют count(*) = 2 для некоторых критерий, вы можете сделать это следующим образом:

В любом случае, вы не можете сделать == только =

При использовании "group by" можно выбрать только те столбцы, которые используются в "group by".

Вы выбираете e.*. измените это на e.studentid.

И его having count(*) = 1 . Не having count(*) ==1 .

Похожие вопросы:

На этом я получаю ошибку ERROR в строке 1: ORA-00937: не одногруппная групповая функция. Может ли кто-нибудь помочь мне в этом, я не знаком с sql . select cerps_accnt_code, cost_centre.

Я работаю над запросом Hibernate. Этот запрос отлично работает с MySQL, но терпит неудачу в Oracle и postgreSQL. SELECT MIN(t.startTime) AS StartTime, MAX(t.endTime) AS EndTime, (SELECT.

У меня есть select, где я хочу собрать только одну строку: listagg (как в коде ниже) , который должен быть ограничен Максимум 40 строк (из-за ограниченной длины varchar) и общее количество всех.

Я пытаюсь найти учетные записи типа 'Savings', но следующий отрывок кода выдает мне ошибку ORA-00937: not a single-group group function - кто-нибудь знает, почему я получаю эту ошибку? SELECT b.bID.

У меня есть следующий код, который вызывает исключение Ора-00979: не выражение group by. Даже если я удалю предложение group by , оно все равно даст ошибку ORA-00937: не одногруппная групповая.

Я пытаюсь спроектировать самый высокий средний показатель GPA студентов по специальностям. Это работает, если я не SELECT major и не оставляю его. Вот что у меня есть: SELECT MAX(avg_gpa), major.

select au_lname, au_fname, count(titles.title) from titleauthor join titles ON titles.title_id=titleauthor.title_id join authors ON authors.au_id=titleauthor.au_id having COUNT(titles.title) > 2;.

Мне нужно узнать количество людей по дате. У меня есть эта ошибка: ORA-00937 не одногруппная групповая функция запрос выглядит следующим образом SELECT DISTINCT DATA,count(PERSON) FROM table where.

Я пытаюсь подсчитать сумму денег, заработанную хирургом с помощью ID 118 в 2016 году С помощью кода : select (sum(count(*) * professional_fee)) AS Total amount earned by 118 from operation.

Запроса query1: select 1 from (select count(*),col1 from table1); O/P: 1 Версия: 11g Query2: select * from (select count(*),col1 from table1); O/P: Ошибка: Выполнение (1: 32): ORA-00937: не.

Have you received an ORA-00937: not a single-group group function error? Learn what it is and how to fix it in this article.

ORA-00937: not a single-group group function

ORA-00937

The ORA-00937 error occurs when a query has an aggregate function (e.g. COUNT, MIN, MAX, SUM, or AVG) as well as other fields or statements, but there is no GROUP BY clause.

When you use one of these aggregate functions by itself, you can run a query without a GROUP BY clause. But, if you use it with another field or column, you need to use a GROUP BY clause to avoid the ORA-00937 error.

ORA-00937 Solution

There are a few ways you can resolve the ORA-00937: not a single-group group function error:

Solution 1: Add the expressions into the GROUP BY clause

If you ran this query, you would get an error:

Now we can run the statement:

DEPARTMENT_ID SUM(SALARY)
1 305000
212000
6 2599500
2 2142000
5 2491000
4 1367300
8 1560000
3 2233000
7 1587000

Solution 2: Remove the expression from the SELECT clause

If you ran this query, you would get an error:

To resolve this error, we could remove the department_id from the SELECT clause.

If we run the query, we get a single value for the SUM of all salaries.

SUM(SALARY)
14496800

Solution 3: Remove the aggregate function

If you ran this query, you would get an error:

Another way to resolve this error is to remove the aggregate function. We could either leave the salary column there or remove it.

Or, if we remove the column entirely:

Leave a Comment Cancel Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Ben Brumm


Ben Brumm
DatabaseStar

Читайте также: