使用POSTGRESQL进行SQL查询
我有以下疑问:使用POSTGRESQL进行SQL查询,sql,postgresql,Sql,Postgresql,我有以下疑问: SELECT DISTINCT "stylists".* FROM "stylists" INNER JOIN "category_stylists" ON "category_stylists"."stylist_id" = "stylists"."id" WHERE category_stylists.category_id IN (1,2) 但我想按类别给设计师排序 例如: Stylists id | Name 1 Sebastian 2 Jh
SELECT DISTINCT "stylists".* FROM "stylists"
INNER JOIN "category_stylists" ON "category_stylists"."stylist_id" = "stylists"."id"
WHERE category_stylists.category_id IN (1,2)
但我想按类别给设计师排序
例如:
Stylists
id | Name
1 Sebastian
2 Jhon
Categories
id | Name
1 Wedding
2 Office
Stylist_Categories
id | stylist_id | category_id
1 1 1
2 2 1
3 2 2
所以,如果我应用我的查询,我得到了两个设计师,但我总是需要按照设计师拥有多少类别进行排序。我的意思是在这个例子中,Jhon将是第一行,因为它有category_id 1和category_id 2
预期结果:
Stylists
id | Name
2 Jhon
1 Sebastian
提前谢谢 尝试计算每个设计师的类别并按其排序:
SELECT "id","name" from(
SELECT "stylists"."id", "stylists"."Name",count(stylists.id) as cnt FROM "stylists"
INNER JOIN "category_stylists" ON "category_stylists"."stylist_id" = "stylists"."id"
WHERE category_stylists.category_id IN (1,2)
group by "stylists"."id", "stylists"."Name")
order by cnt desc
没问题@sebaMelgar。