К php конечно отношения не имеет Есть таблица Repairs(id, date_begin, date_end, id_avto, description) Таблица, где хранятся записи о ремонтах автомобилей. И нужен запрос, который выведет строки в которых id_avto больше всего, т.е. какой автомобиль больше всего ремонтировался. Вопрос сформулировал как смог. Тут с этими праздниками и башка что то соображает плоховато
Не, нето. Вопрос я криво сформулировал. Допустим есть там данные, опустим даты и ддескришн --------------------- id | id_avto | --------------------- 1 | 2 | 2 | 4 | 3 | 2 | 4 | 8 | 5 | 2 | 6 | 4 | 7 | 2 | --------------------- Вот в этом примере строк больше всего где есть id_avto = 2. И мне нужно выбрать записи где id_avto = 2. Но я не знаю что это именно 2, ведь данные в таблицу добавляются, и записей может стать больше, где id_avto мо быть другое
Код (Text): SELECT MAX(COUNT(id_avto)) AS id_avto FROM table GROUP BY id_avto ORDER BY id_avto DESC LIMIT 1 Ну это для MySQL, с MSSQL к сожалению не очень знаком, посему синтаксис и функции могут чуть подругому называться, но идея правильная...
еррор Код (Text): #1111 - Invalid use of group function В MS лимит по моему чуть по другому задается, а агрегатные функции такие же
Мне не нужен максимальный id_avto, мне нужно чтобы он содержался в максимальном количестве строк, и заранее неизвестен.
Блин, я тут подумал, MAX то нафиг не нужен, ну и из-за него вообще-то ошибка Код (Text): SELECT COUNT(id_avto) AS id_avto FROM table GROUP BY id_avto ORDER BY id_avto DESC LIMIT 1 Он ведь сортируеться, и самое большое число будет сверху, он его и выберет, остальное отрежет лимитом.
А кто нибудь проверяет запрос перед тем как сюда написать? Вот что получилось у меня Код (Text): SELECT id_avto, COUNT(DISTINCT id) AS rec FROM Repairs GROUP BY id_avto ORDER BY rec DESC LIMIT 1 Но нужен как раз таки набор записей, куда входит id_avto, который вернул этот запрос. Мне почему то уже начинает казаться что такого запроса существовать не может
Разобрался. В mysql-4.1.8 это не работает: #1111 - Invalid use of group function Но MSSQL все пашет, мне там и нужно было. Код (Text): SELECT * FROM repairs WHERE id_avto=(SELECT TOP 1 id_avto FROM repairs GROUP BY id_avto ORDER BY COUNT(DISTINCT id) DESC) Всем спасибо!