[mySQL] večinski select

Ker je moj primer precej kompliciran, bom napisal poenostavjeno verzijo problema.

Npr. imam tabele:

product (id, product_name)
category (id, category_name)
product2category (product_id, category_id)
product_2_option_group (product_id, option_group_id)
option_group (id, group_name)
option (id, option_group_id, product_id, option_name)

Sem na strani od kategorije in imam category.id rad bi pa dobil tisto skupino opcij(option_group), ki jo ima največ izdelkov.

Npr.
5 izdelkov ima samo opcije tipa "teža"
4 izdelki imajo "teža" in "material"
6 izdelkov ima pa samo "material"

Torej v tej kategoriji je skupno vpisanih 9 opcij "teža" in 10 opcij material.
V tem primeru bi moral biti rezultat: option_group ~ material

Že v naprej hvala vsem, ki se boste s tem ukvarjali ;)

4 odgovori

Ah sem že :)
order by COUNT(product2optiongroup.optiongroup_id) DESC LIMIT 1

S tem nisi predvidel primera, ko ima vec kategorij enako stevilo opcij.

Ha? Ne razumem točno kaj misliš.

Tukaj kategorije niti niso pomembne, saj so tipi opcij in same opcije vezane na izdelke.

Drugače pa vedno to počnem znotraj ene kategorije in v poizvedbi imam vedno pogoj "WHERE category_id = ...".

hoče ti povedati da ne boš zaznal če bo recimo 9 opcij "teža" in 9 opcij "material".

Zaznal boš samo eno od dveh.