gpt4 book ai didi

c# - 选择相对于 sql 中其他列值多出 50% 的列值

转载 作者:行者123 更新时间:2023-12-03 21:55:38 25 4
gpt4 key购买 nike

我需要编写一个 SQL 查询(SQL Server)。

我有一张看起来像这样的 table 。表名称:类

Subject Student Grade
Math James A
Math John B
Math Eric B
Physics Crystal A
Chemistry James C
Biology John A
Biology Eric B

等等...

我想显示包含所有列的表格,但在“主题”列中发现学生姓名的出现率为 50% 或更高

例如,如果学生姓名 - “James”出现在 4 个科目中的 2 个中,则应显示他的姓名,并应排除其他符合 50% 标准的人员。

谢谢

最佳答案

使用具有...

select Student
from Class
group by Student
having count(Student) >= (select count(distinct [Subject]) from Class) / 2.0

或者如果你喜欢变量...

declare @numOfSubjects int = (select count(distinct [Subject]) from Class)

select Student
from Class
group by Student
having count(Student) >= @numOfSubjects / 2.0

要恢复所有列,您可以将其包装在 CTE 中

with cte as(
select Student
from Class
group by Student
having count(Student) >= (select count(distinct [Subject]) from Class)) / 2.0)

select
c.*
from Class c
inner join cte on cte.Student = c.Student

关于c# - 选择相对于 sql 中其他列值多出 50% 的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43007925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com