首页 > 试题广场 >

出现三次以上相同积分的情况

[编程题]出现三次以上相同积分的情况
  • 热度指数:87109 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解


在牛客刷题的小伙伴们都有着牛客积分,积分(grade)表简化可以如下:

id number
1
2
3
4
5
111
333
111
111
333

id为用户主键id,number代表积分情况,让你写一个sql查询,积分表里面出现三次以及三次以上的积分,查询结果如下:

111
注意:若有多个符合条件的number,则按number升序排序输出。
示例1

输入

drop table if exists grade;
CREATE TABLE `grade` (
`id` int(4) NOT NULL,
`number` int(4) NOT NULL,
PRIMARY KEY (`id`));

INSERT INTO grade VALUES
(1,111),
(2,333),
(3,111),
(4,111),
(5,333);

输出

111

order by好像没必要使用了。

select
    number
from grade
group by number
having count(id) >= 3
order by number;
发表于 2024-06-04 19:20:56 回复(0)
select number from grade
group by number
having count(number)>=3;

编辑于 2024-02-05 13:49:31 回复(0)
select number
from grade
group by number
having count(number) >= 3;
编辑于 2024-01-22 21:58:38 回复(0)
知识点:having
select 
    number
from 
    grade
group by
    number
having
    count(number)>=3
order by 
    number

发表于 2023-05-25 10:40:33 回复(0)
select distinct number
from (
    select id,number,count(*) over(partition by number) as num
    from grade
)t 
where t.num>=3;
二刷,只是纯粹想用一个窗口函数

发表于 2022-12-23 23:25:54 回复(0)
这算是另一种解法,了解了解就行,因为比起其他要复杂了一点
select distinct g.number
from
(select number,count(*) over(partition by number) as ct
from grade) as g
where g.ct>=3
order by g.number

发表于 2022-12-13 11:58:31 回复(0)
select `number`
from grade
group by `number`
having count(1) >= 3
order by `number`
发表于 2022-08-11 14:29:49 回复(0)
select number from grade
group by number
having count(number)>= 3;
发表于 2022-08-07 15:25:40 回复(0)
请各位大佬解惑,为什么这一句  SELECT COUNT(*),number FROM grade GROUP BY number HAVING COUNT(*)>=3;  在牛客上不能通过,而在mysql能够通过。
发表于 2022-07-15 16:14:38 回复(2)
select distinct a.number
from 
(select number, count(id) as cnt
from grade group by number
having cnt >= 3
) as a
;

发表于 2022-07-15 09:35:31 回复(0)
小开一下😅
select distinct number
from (
    select number,
    count(1) over(partition by number) nm
    from grade
) t
where t.nm >= 3 


发表于 2022-07-04 17:32:24 回复(0)
select number
from grade
group by number
having count(number) >= 3;
发表于 2022-06-07 16:13:00 回复(0)
SQL语句执行顺序
from-where-group by-having-select-order by-limit 
发表于 2022-06-02 18:05:59 回复(0)
筛选条件为某一字段出现次数,则要对该字段进行统计,故要先对字段进行分组GROUP BY;
设置筛选条件COUNT(number)>=3, 因条件包含聚集函数,所以只能使用HAVING,而不能使用WHERE。
select number
from grade group by number having count(number) >= 3
order by number 


发表于 2022-05-25 07:56:04 回复(0)
select number from grade group by number having count(number)>=3 
发表于 2022-05-20 20:42:46 回复(0)
select
round(avg(number),0) as nu
from grade
group by number
having count(*)>=3
order by nu


发表于 2022-05-16 10:02:34 回复(0)
select
number
from 
grade 
group by number
having count(id)>=3
order by number
发表于 2022-04-20 17:12:51 回复(0)
select number
from grade
group by number 
having count(*)>=3

发表于 2022-04-18 14:47:00 回复(0)
# 解题思路,简单的分组聚合,求数
select number
from grade
group by number having count(*) >2
order by number

发表于 2022-04-17 21:21:21 回复(0)