[sql]select *, count(name) as cn from value where properti=3 and type=72 group by name order by cn desc limit 5[/sql] при таком запросе - результат изменяется 2-3 раза после нового выполнения, после чего устаканивается на одном результате. п/с ни добавление, ни удаление в это время не проходит (все на локалке) из-за чего может менятся результат выборки?
есть таблица значения свойств properti - код свойства например type - тип товара (пылесос, телефон и т.д.) нужно выбрать те свойства, для которых есть максимум (больше чем у других) значений свойст
[sql]select prop.name, count(val.id) as num from val left outer join prop on prop.id=val.properti group by prop.name order by num desc limit 5[/sql]
1)При использовании group by результат выдается по группе. Таким образом если некое поле присутствует в select но не присутствует в group by или агрегирующей функции, то не понятно к какой группе его относить. В Вашем запросе в "*" может быть несколько таких полей. 2) Ваш запрос примененный к первой приведенной таблице не решает поставленной задачи.
[sql] select *, count(name) as cn from value where properti=3 and type=72 group by name order by cn desc limit 5[/sql] изменен на [sql]select id, name, count(name) as cn from value where properti=3 and type=72 group by name order by cn desc limit 5[/sql] решит проблему?
немного неправильно сформулировал задачу запроса это конечная задача задача запроса найти, те свойства, что есть у максимум товаров.
id - не подходит под указанные критерии. MSSQL Server выдаст ошибку при попытке выполнения запроса, MySQL, насколько я понял, выдаст id соответствующий первой записи в группе, а первой записью может оказаться любая запись в группе. Что-что? Наиболее часто встречающиеся свойства? Тогда нужна таблица связей товаров и свойств. Какому типу товара принадлежит больше всего свойств? Тогда и группируй по типу товара: [sql]select type, count(name) as cn from value group by type order by cn desc limit 5[/sql]