[英]retrieve all rows from the table grouped by condition
我有以下mysql表:
products
帶有文件:
id, product_group_id, internal_product_id, version, platform_id, name
1 12 12 1 30 Megacalculator
2 12 12 2 30 Megacalculator
3 16 17 1 30 Calculator
4 16 17 2 30 Calculator
5 16 18 0.1 40 Calculator Linux
6 20 19 2.1 30 Converter Windows
7 20 20 2.1 40 Converter Linux
8 30 24 0.1 30 Editor
我需要從該表中檢索所有按“ product_group_id”分組的行,但該組內部具有不同的“ internal_product_id”。 此外,每組中的行數必須等於某個特殊數字(該值必須作為外部參數提供給查詢)
例如:
外部參數= 2,結果:
product_group_id
16
20
外部參數= 1,結果:
product_group_id
12
30
請幫我這個SQL查詢。
試試看:
對於參數= 2
select `product_group_id` from products
group by `product_group_id`
having count(distinct `internal_product_id`) = 2
對於參數= 1
select `product_group_id` from products
group by `product_group_id`
having count(distinct `internal_product_id`) = 1
你可以這樣做:
select product_group_id from products
group by product_group_id;
having count(internal_product_id) = 2;
或者您可以在表中獲取信息:
select product_group_id, count(internal_product_id) from products
group by product_group_id;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.