我有一张运动桌:
CREATE TABLE Sports(
name_sport VARCHAR(50) PRIMARY KEY,
categories_sport VARCHAR(50),
type_result_sport VARCHAR(50),
discipline TEXT,
enEquipe BOOLEAN
);
我填写的数据如下:
('Women''s 50m Freestyle','freestyle','aquatics','temps','FALSE'),
('Trap Women','shooting','shooting','temps','FALSE'),
('10m Air Pistol Men','shooting','shooting','score','FALSE'),
('10m Air Rifle Men','shooting','shooting','score','FALSE'),
('Women''s Discus Throw','throws','athletics','score','FALSE'),
('Women''s Hammer Throw','throws','athletics','score','FALSE'),
('Women''s Javelin Throw','throws','athletics','score','FALSE'),
('Men''s 100m','track','athletics','temps','FALSE'),
('Women''s Doubles','badminton','badminton','temps','TRUE'),
('Women''s Singles','badminton','badminton','temps','FALSE'),
('Men''s Doubles','badminton','badminton','temps','TRUE'),
('Men''s Singles','badminton','badminton','temps','FALSE'),
('Lightweight Women''s Double Sculls','rowing','rowing','temps','FALSE'),
('Women''s Double Sculls','rowing','rowing','temps','FALSE'),
('Women''s Eight','rowing','rowing','temps','FALSE'),
('Women''s Pair','rowing','rowing','temps','FALSE'),
('Women''s Quadruple Sculls','rowing','rowing','temps','FALSE'),
('Women''s Single Sculls','rowing','rowing','temps','FALSE'),
('Lightweight Men''s Double Sculls','rowing','rowing','temps','FALSE'),
('Lightweight Men''s Four','rowing','rowing','temps','FALSE'),
('Women''s +75kg','weightlifting','weightlifting','score','FALSE'),
('Women''s 48kg','weightlifting','weightlifting','score','FALSE'),
('Women''s 53kg','weightlifting','weightlifting','score','FALSE'),
('Women''s 58kg','weightlifting','weightlifting','score','FALSE'),
('Women''s 63kg','weightlifting','weightlifting','score','FALSE'),
('Women''s 69kg','weightlifting','weightlifting','score','FALSE'),
('Women''s 75kg','weightlifting','weightlifting','score','FALSE'),
('Men''s +105kg','weightlifting','weightlifting','score','FALSE'),
('Men''s 105kg','weightlifting','weightlifting','score','FALSE'),
('Men''s 56kg','weightlifting','weightlifting','score','FALSE'),
('Men''s 62kg','weightlifting','weightlifting','score','FALSE'),
('Men''s 69kg','weightlifting','weightlifting','score','FALSE'),
('Men''s 77kg','weightlifting','weightlifting','score','FALSE'),
('Men''s 85kg','weightlifting','weightlifting','score','FALSE'),
('Men''s 94kg','weightlifting','weightlifting','score','FALSE'),
我试着选择五大类(水、田径、射箭.)(男子100米,女子50米自由泳.)
在这种情况下,输出将是:
Aquatics
Athletics
Shooting
badminton
rowing
谢谢
编辑1:添加了更多的样本数据和输出。
发布于 2018-12-16 18:00:37
请尝尝这个。按语句分组类别,按顺序排序结果按每个类别发生的次数,并将返回结果的数量限制为5。
select categories_sport, count(*) as cnt
from Sports
group by (categories_sport)
order by cnt asc
limit 5
发布于 2018-12-16 18:03:02
您需要一个具有GROUP BY categories_sport
的聚合查询,按升序计数排序,并在5个结果上使用一个LIMIT
子句。
这将适用于mysql和postgres (标记为两者):
SELECT categories_sport, count(*)
FROM sports
GROUP BY categories_sport
ORDER BY COUNT(*)
LIMIT 5
https://stackoverflow.com/questions/53804961
复制相似问题