Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我想显示大于20小时的工作时间_Sql - Fatal编程技术网

Sql 我想显示大于20小时的工作时间

Sql 我想显示大于20小时的工作时间,sql,Sql,看起来您想要筛选组结果。为此,请使用having子句和groupby子句 让我们这样做: select fname as 'Employee_Name',sum(hours) as 'Working hours' from employee e join works_on w on e.ssn = w.essn group by ssn; 另请注意,select子句中使用的列必须位于Group By子句中,但Group By子句中的列不必位于select子句中。这是无效的(标准)SQL。你的问

看起来您想要筛选组结果。为此,请使用having子句和groupby子句

让我们这样做:

select fname as 'Employee_Name',sum(hours) as 'Working hours'
from employee e join works_on w on e.ssn = w.essn
group by ssn;

另请注意,select子句中使用的列必须位于Group By子句中,但Group By子句中的列不必位于select子句中。

这是无效的(标准)SQL。你的问题到底是什么?谢谢,我也在尝试,但我使用了-工作时间>20,它显示错误。有了这个结果,我现在问了另一个问题。我可以在having子句中使用任何函数操作吗?假设我分组后有一个表,并且只想显示一个特定列的最小值的表内容,哪个项目的员工数最少?选择pname为“Project_Name”,count(ssn)为“Employee_count”,从Employee e join works_on w on e.ssn=w.essn加入项目p on w.pno=p.pnumber组,按pname的员工人数=(选择min(Employee_count));
select fname as 'Employee Name',sum(hours) as 'Working hours'
from employee e join works_on w on e.ssn = w.essn
group by ssn , fname Having sum(hours) > 20;