我最近有一个面试问题,其措辞如下:
从用户表中选择所有用户,其中用户为多个企业工作,并且至少有一个企业的工资超过90000。
每行代表一个用户。有些用户有多行(当他们为多个企业工作时),每个用户都有一个businessId。
我还不熟悉SQL,在编写应用程序代码时我做了很多基本的select
和update
语句,但是我不确定如何去做这个。我是否应该使用count
来确定一个用户是否有多行?我不确定如何使用where
子句来构造它以检查薪水。
答案 0 :(得分:3)
由用户分组(例如名称)。然后,您可以使用having
子句在组中执行聚合操作 - 这意味着每个用户
select username
from users
group by username
having count(distinct businessId) > 1
and max(salary) > 90000