from (select key, id from table
group by key, id
having count(*) > 1);
count(distinct)
нет select count(*) from table group by key, id having count(*) > 1; разве не сработает? нет и select count(*) from table нет
Да. Однозначно да :))))
Ну, реально уровень советов какой-то совсем ученический-то.
Ну так там такой уровень вопросов... как посчитать количество после группировки и в группировке те же поля что и в выборке. count distinct это...
не кажется что запрос тут и в примере несколько разный? Или мне показалось? :))) ну having вместе с distinct это вообще огонь :)))
А primary key у таблички е?
Ну, то есть можно — но там бездны, зачем вам туда?
вопрос был не такой как сделать это без подзапроса @baekenov_rustam row_number() - да!
ну смысла в этом нет, вопрос явно с собеса. Причём простой... В приведённом примере просто считают число уникальных сочитаний двух колонок в таблие
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() на этот вопрос мне кажется не оценят....
Чем вам row_number поможэт?
Судя по тому, что ты ответил неправильно — не такой простой...
О_о кто то выше то же самое написал... :))) но если я ответил неправильно видимо пора мне на пенсию не пройду собес по sql-ю в 3-й клас начальной школы :(
Не плачь, дорогой, не пройдёшь по скульному скулю — пойдёшь в начальники, там думать не надо...
почему я тестировал row_number дает лучший результат @comol1985 в оригинальном запросе убирается having и пишется count distinct куда убирается? мне надо подсчитать кол-во дубликатов с уникальным ( key, id) поэтому having ... > 1 нужон @tzirechnoy Чем вам row_number поможэт? - гугл
да норм... меня устроит :)
У меня там ещё join был, который важнее distinct.
хм.... количество после группировки и количество дубликатов это по-твоему одно и то же?...
И ты тожэ пошлёл бы куда-нибудь, спасибо.
Я ваще не понял к чему там джойн... но начало было правильное
Вот=вот, ты вообще не понял оригинального запроса и что делает having.
да и не пытался... там явно написали задачу на "количетсво после группировки" и в группировке такие же поля как и в выборке. Ну потом оказалось что история другая...
Да не, щас всё нормально... просто задача трансформировалось с поиска уникальных в поиски дублей, для поиска дублей я хз как без подзапроса, видимо и правда с rownumber только извращаться.
пожалуйста select row_number() over() num from table group by key, id having count(*) > 1 order by num desc limit 1; @comol1985 хм.... количество после группировки и количество дубликатов это по-твоему одно и то же?... по-моему я запрос написал в нем having не для красоты же наверное
а я хз что у тебя в голове. Ты написал "как посчитать количество после группировки" я на having даже не смотрел ибо его не сильно прикольно использовать по планам запроса и т.п. по твоему описанию задача казалась предельно тупой, я и поржал
ну да нахрен запрос смотреть 😀 distinc ничего не решит группировка объединит они так будут по одному count(distinc после группировки выведет 1 1 1
без having решит. Тупо выведет количество различных записей. Что то же самое что "количество после группировки" если у тебя в выборке и группировке одни и те же записи
запрос внимательней смотреть нужно я считаю кол-во записей после группировки, а не кол-во записей в каждой группировке
Любопытный вариант, спасибо.
Ну как бы описывать тоже надо внимательно... я обычно "запрос который не так работает" вообще не смотрю ибо может не туда увести... ну или смотрю что выбираем и откуда только
Я что-то думал, что window functions отрабатывают до GROUP BY.
все конец рабочего дня пятницы - суши весла и клавиатуру!🤞🤟👌😉😃
Мне тут боевой разворот обратно на работу устроили, когда я ужэ срулил было.
а как же договор?
Есть минусы в семейных компаниях...
Ну, и вообще -- когда это у меня нормированный рабочий день-то был? Разве что когда я акцыями с лотка у метро торговал, хе-хе. Да и то...
есть смысл обобщенного ответа для всех СУБД чем отличаются функции от процедур или для каждой СУБД свой ответ? Смотрел оракл там одни отличия в постресе другие (собес внутри компании на мидла)
эм... функции возвращают значения процедуры нет и СУБД тут вообщем то особо не причём... Или я опять твой вопрос не понял?
В mssql например ХП возвращают статусы а ещё можно вытащить значение последнего select statement выполненного в теле ХП В общем случае все как Олег описал но каждая реализация может накидать своих "плюшек"
процедура может возвращать значения через параметры в oracle процедура не может вызываться в select управление транзакциями также отличается от СУБД к СУБД в процедуре
статусы, output параметры, дататсеты (и не последний, а все)
параметры по ссылке и по значению или параметры... это всё равно процедура... и в select она по идее не должна вызываться... Но тут или общим словом ответить или уже совсем детали собирать... а типов СУБД много...
особенно в ms sql... там же ещё CLR хранимки могут быть... это вообще отдельный мир :(
Обсуждают сегодня