powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Агрегатные функции во вложенном запросе
25 сообщений из 25, страница 1 из 1
Агрегатные функции во вложенном запросе
    #38719610
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня.

Есть Таблица (справочник), в Таблице есть Столбец (id-издания):

Код: sql
1.
2.
3.
4.
5.
6.
ID  id-издания    название 
1          33      журнал
2          33      журнал
3          10      книга
4          15      тетрадь
5          15      тетрадь



Нужно найти количество повторяющихся значений (id-издания) и затем найти среднее арифметическое столбца (id-издания)?
Все это нужно выполнить в одном запросе (можно со сколь угодно подзапросами).


Результат:
Код: sql
1.
2.
3.
4.
количество        название         среднее арифметическое
     2            журнал                     1,6
     1            книга                      1,6
     2            тетрадь                    1,6
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719618
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
среднее арифметическое не обязательно вписывать в столбец, оно больше требуется для условия, по которому
будут выбираться издания у которых количество повторений больше чем среднее арифметическое.
(но если поместить в столбец тож ничего)
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719637
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно, как из приведённых исходных данных получился приведённый результат...
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719647
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял задачу
Код: sql
1.
2.
3.
SELECT field1, count(*), count(*)/(SELECT count(distinct field1) FROM mytable)
FROM mytable
GROUP BY field1


По быстродействию возможны варианты, хотя, возможно, и этот вариант вполне неплох.
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719650
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
ID   id-издания    название 
1          33      журнал
2          33      журнал
3          10      книга
4          15      тетрадь
5          15      тетрадь


Расчет:
Количество повторяющихся значений:
значение "33" - повторяется 2 раза
значение "10" - повторяется 1 раз
значение "15" - повторяется 2 раза

Среднее арифметическое: (нужно рассчитывать после подсчета кол-ва повторяющихся значений)
сумма рассчитанных значений: 2 + 1 + 2 = 5
количество записей "3"
среднее арифметическое = 5 / 3 = 1,6
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719656
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftЕсли я правильно понял задачу
Код: sql
1.
2.
3.
SELECT field1, count(*), count(*)/(SELECT count(distinct field1) FROM mytable)
FROM mytable
GROUP BY field1

Нет, не так.
Код: sql
1.
2.
3.
SELECT field1, count(*), (SELECT count(*)/count(distinct field1) FROM mytable)
FROM mytable
GROUP BY field1
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719662
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Чего нет так нет )) проверяю...

Работает, только значение выдает целое число.

Можно, как нить сделать, что б, выдавал и значение после запятой ?
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719678
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, поторопился...

Не совсем получилось, средне статистическое не правильно посчитало (
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719687
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleksсредне статистическоеНичего не понял. Какое такое статистическое и что именно не получилось?
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719691
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Среднее арифметическое.
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719697
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня получается, что деление происходит но то же значение что и
Код: sql
1.
count(distinct field1)

в результате выдает результат "1".
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719700
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks,

показывайте запрос целиком.
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719716
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
Код: sql
1.
2.
3.
4.
SELECT V1.Code
	,COUNT(V1.Code) AS nCOUNT
	,COUNT(V1.Code)/(SELECT COUNT(V2.Code) FROM mLoandoc V2 WHERE V1.ReglamentCode = v2.ReglamentCode) AS nAVG 
FROM mLoandoc V1 GROUP BY V1.ReglamentCode
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719718
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks,

эту ошибку я уже исправил, см. 16437905
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719734
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

С таким запросом:

Код: sql
1.
2.
3.
4.
SELECT V1.Code
	,COUNT(V1.Code) AS nCOUNT
	,(SELECT COUNT(V1.Code)/COUNT(V2.Code) FROM mLoandoc V2 WHERE V1.ReglamentCode = v2.ReglamentCode) AS nAVG 
FROM mLoandoc V1 GROUP BY V1.ReglamentCode



Выдает значения: равные
Код: sql
1.
COUNT(V1.Code) AS nCOUNT
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719739
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks,

Ваш запрос даже внешне не очень похож на мой.
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719747
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Я пробовал разные варианты, результат или один (=1) или другой (=тому же значению), но не один из вариантов не дает правильный результат.
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719748
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks,

Вы можете попробовать точно именно мой вариант? без изменений?
По крайней мере, пока я ошибки в нем не вижу.
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719962
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftAleks_Aleks,

Вы можете попробовать точно именно мой вариант? без изменений?
По крайней мере, пока я ошибки в нем не вижу.

А я вижууу....:):):):)

найти ПОВТОРЯЮЩИЕСЯ ЗНАЧЕНИЯ...
тоесть having count(*)>1
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38719966
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453,

ну и там где считатеться не понятное среднее....он же написал среднее айдишника надо???

затем найти среднее арифметическое столбца (id-издания)?

если считать как вы тут щитаете, правда совсем другое среднее то тоже надо отсиивать не повторы..

но мне кажеться горе сттудент не удосужился нормально переписать уловие
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38720988
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex564657498765453,

Правильное решение: (только методика, в самом селект - могут быть ошибки )

Код: sql
1.
2.
SELECT COUNT(id-издания) AS издания, название FROM Справочник GROUP BY название
HAVING COUNT(id-издания) > (SELECT AVG(id-издания) FROM(COUNT(id-издания))
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38721031
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks
Код: sql
1.
(SELECT AVG(id-издания) FROM(COUNT(id-издания))

каунт - это число? вы собрались считать среднее от одного числа?
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38721038
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks
Код: sql
1.
2.
3.
4.
5.
6.
ID   id-издания    название 
1          33      журнал
2          33      журнал
3          10      книга
4          15      тетрадь
5          15      тетрадь



Расчет:
Количество повторяющихся значений:
значение "33" - повторяется 2 раза
значение "10" - повторяется 1 раз
значение "15" - повторяется 2 раза

Среднее арифметическое: (нужно рассчитывать после подсчета кол-ва повторяющихся значений)
сумма рассчитанных значений: 2 + 1 + 2 = 5
количество записей "3"
среднее арифметическое = 5 / 3 = 1,6
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select 
 name
 ,count(*)
 ,(select avg(c) from (
  select name,count(*) c
  from table group by 1
  ) t0
 ) qwe
from table
group by 1
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38721479
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

Там было сказано что: " могут быть ошибки " т.е. обязательно есть ;)

Спс за селект !!!
...
Рейтинг: 0 / 0
Агрегатные функции во вложенном запросе
    #38721583
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirAleks_Aleks
Код: sql
1.
2.
3.
4.
5.
6.
ID   id-издания    название 
1          33      журнал
2          33      журнал
3          10      книга
4          15      тетрадь
5          15      тетрадь



Расчет:
Количество повторяющихся значений:
значение "33" - повторяется 2 раза
значение "10" - повторяется 1 раз
значение "15" - повторяется 2 раза

Среднее арифметическое: (нужно рассчитывать после подсчета кол-ва повторяющихся значений)
сумма рассчитанных значений: 2 + 1 + 2 = 5
количество записей "3"
среднее арифметическое = 5 / 3 = 1,6
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select 
 name
 ,count(*)
 ,(select avg(c) from (
  select name,count(*) c
  from table group by 1
  ) t0
 ) qwe
from table
group by 1


тююю походу я русский язык плохо знаю.
тоесть если запись встречаеться в таблице один раз --- 10, то это называеться она один раз повторяеться?
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Агрегатные функции во вложенном запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]