172 похожих чатов

Как подсчитать кол-во после группировки без подзапроса ? select count(*)

from (select key, id from table
group by key, id
having count(*) > 1);

47 ответов

28 просмотров

count(distinct)

Геннадий- Автор вопроса
oleg filippov
count(distinct)

нет select count(*) from table group by key, id having count(*) > 1; разве не сработает? нет и select count(*) from table нет

oleg filippov
Да. Однозначно да :))))

Ну, реально уровень советов какой-то совсем ученический-то.

Геннадий- Автор вопроса
Ilya Anfimov
Ну, реально уровень советов какой-то совсем ученич...

Ну так там такой уровень вопросов... как посчитать количество после группировки и в группировке те же поля что и в выборке. count distinct это...

Геннадий
screenshot нет, однозначно нет

не кажется что запрос тут и в примере несколько разный? Или мне показалось? :))) ну having вместе с distinct это вообще огонь :)))

А primary key у таблички е?

Ну, то есть можно — но там бездны, зачем вам туда?

Геннадий- Автор вопроса
oleg filippov
Ну так там такой уровень вопросов... как посчитать...

вопрос был не такой как сделать это без подзапроса @baekenov_rustam row_number() - да!

Ilya Anfimov
Ну, то есть можно — но там бездны, зачем вам туда?

ну смысла в этом нет, вопрос явно с собеса. Причём простой... В приведённом примере просто считают число уникальных сочитаний двух колонок в таблие

SELECT count(distinct t1.key, t1.id) FROM table t1 join table t2 ON t1.key=t2.key AND t1.id=t2.id AND t1.pkey <> t2.pkey

Геннадий
вопрос был не такой как сделать это без подзапроса...

в оригинальном запросе убирается having и пишется count distinct. в твоём с учетом формулы может и не отработает - хз. если напишешь на собесе row_number() на этот вопрос мне кажется не оценят....

oleg filippov
ну смысла в этом нет, вопрос явно с собеса. Причём...

Судя по тому, что ты ответил неправильно — не такой простой...

Ilya Anfimov
Судя по тому, что ты ответил неправильно — не тако...

О_о кто то выше то же самое написал... :))) но если я ответил неправильно видимо пора мне на пенсию не пройду собес по sql-ю в 3-й клас начальной школы :(

oleg filippov
О_о кто то выше то же самое написал... :))) но есл...

Не плачь, дорогой, не пройдёшь по скульному скулю — пойдёшь в начальники, там думать не надо...

Геннадий- Автор вопроса

почему я тестировал row_number дает лучший результат @comol1985 в оригинальном запросе убирается having и пишется count distinct куда убирается? мне надо подсчитать кол-во дубликатов с уникальным ( key, id) поэтому having ... > 1 нужон @tzirechnoy Чем вам row_number поможэт? - гугл

oleg filippov
О_о кто то выше то же самое написал... :))) но есл...

У меня там ещё join был, который важнее distinct.

Геннадий
почему я тестировал row_number дает лучший результ...

хм.... количество после группировки и количество дубликатов это по-твоему одно и то же?...

Геннадий
почему я тестировал row_number дает лучший результ...

И ты тожэ пошлёл бы куда-нибудь, спасибо.

Ilya Anfimov
У меня там ещё join был, который важнее distinct.

Я ваще не понял к чему там джойн... но начало было правильное

oleg filippov
Я ваще не понял к чему там джойн... но начало было...

Вот=вот, ты вообще не понял оригинального запроса и что делает having.

Ilya Anfimov
Вот=вот, ты вообще не понял оригинального запроса ...

да и не пытался... там явно написали задачу на "количетсво после группировки" и в группировке такие же поля как и в выборке. Ну потом оказалось что история другая...

Да не, щас всё нормально... просто задача трансформировалось с поиска уникальных в поиски дублей, для поиска дублей я хз как без подзапроса, видимо и правда с rownumber только извращаться.

Геннадий- Автор вопроса
Ilya Anfimov
И ты тожэ пошлёл бы куда-нибудь, спасибо.

пожалуйста select row_number() over() num from table group by key, id having count(*) > 1 order by num desc limit 1; @comol1985 хм.... количество после группировки и количество дубликатов это по-твоему одно и то же?... по-моему я запрос написал в нем having не для красоты же наверное

Геннадий
пожалуйста select row_number() over() num from t...

а я хз что у тебя в голове. Ты написал "как посчитать количество после группировки" я на having даже не смотрел ибо его не сильно прикольно использовать по планам запроса и т.п. по твоему описанию задача казалась предельно тупой, я и поржал

Геннадий- Автор вопроса
oleg filippov
а я хз что у тебя в голове. Ты написал "как посчит...

ну да нахрен запрос смотреть 😀 distinc ничего не решит группировка объединит они так будут по одному count(distinc после группировки выведет 1 1 1

Геннадий
ну да нахрен запрос смотреть 😀 distinc ничего не р...

без having решит. Тупо выведет количество различных записей. Что то же самое что "количество после группировки" если у тебя в выборке и группировке одни и те же записи

Геннадий- Автор вопроса
oleg filippov
без having решит. Тупо выведет количество различны...

запрос внимательней смотреть нужно я считаю кол-во записей после группировки, а не кол-во записей в каждой группировке

Геннадий
запрос внимательней смотреть нужно я считаю кол-во...

Ну как бы описывать тоже надо внимательно... я обычно "запрос который не так работает" вообще не смотрю ибо может не туда увести... ну или смотрю что выбираем и откуда только

Геннадий
пожалуйста select row_number() over() num from t...

Я что-то думал, что window functions отрабатывают до GROUP BY.

Геннадий- Автор вопроса
Ilya Anfimov
Я что-то думал, что window functions отрабатывают ...

все конец рабочего дня пятницы - суши весла и клавиатуру!🤞🤟👌😉😃

Геннадий
все конец рабочего дня пятницы - суши весла и клав...

Мне тут боевой разворот обратно на работу устроили, когда я ужэ срулил было.

Геннадий
а как же договор?

Есть минусы в семейных компаниях...

Геннадий
а как же договор?

Ну, и вообще -- когда это у меня нормированный рабочий день-то был? Разве что когда я акцыями с лотка у метро торговал, хе-хе. Да и то...

Геннадий- Автор вопроса
Ilya Anfimov
Есть минусы в семейных компаниях...

есть смысл обобщенного ответа для всех СУБД чем отличаются функции от процедур или для каждой СУБД свой ответ? Смотрел оракл там одни отличия в постресе другие (собес внутри компании на мидла)

Геннадий
есть смысл обобщенного ответа для всех СУБД чем от...

эм... функции возвращают значения процедуры нет и СУБД тут вообщем то особо не причём... Или я опять твой вопрос не понял?

Геннадий
есть смысл обобщенного ответа для всех СУБД чем от...

В mssql например ХП возвращают статусы а ещё можно вытащить значение последнего select statement выполненного в теле ХП В общем случае все как Олег описал но каждая реализация может накидать своих "плюшек"

Геннадий- Автор вопроса
oleg filippov
эм... функции возвращают значения процедуры нет и ...

процедура может возвращать значения через параметры в oracle процедура не может вызываться в select управление транзакциями также отличается от СУБД к СУБД в процедуре

Raimbek Rakhimbekov
В mssql например ХП возвращают статусы а ещё можн...

статусы, output параметры, дататсеты (и не последний, а все)

Геннадий
процедура может возвращать значения через параметр...

параметры по ссылке и по значению или параметры... это всё равно процедура... и в select она по идее не должна вызываться... Но тут или общим словом ответить или уже совсем детали собирать... а типов СУБД много...

Raimbek Rakhimbekov
В mssql например ХП возвращают статусы а ещё можн...

особенно в ms sql... там же ещё CLR хранимки могут быть... это вообще отдельный мир :(

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта