如果聘用人数剩下1,则使用SQL(在where子句中使用列别名)

罗素·哈勒(RussellHarrower)

我在使用简单的SQL语句时遇到了一个小问题。

我需要确定电影表中是否有电影的7个副本,并且有6个人已将其租借出去,我需要看看我只剩下1个副本(我需要通过SQL查询来完成所有工作)。我知道通常我会使用PHP来做到这一点,而只是从副本总数中减去雇用的人数,但是可悲的是,我的大学希望我以其他方式做到这一点。

SELECT *,  
COUNT(distinct hire.movie_id) AS num_orders
FROM `movie`
INNER JOIN hire ON hire.movie_id = movie.id
WHERE num_orders < movie.no_copies;

运行此命令时,出现以下问题#1054 - Unknown column 'num_orders' in 'where clause'

斯图尔特

您不能在where谓词中使用别名-您需要重复谓词,在对别名进行过滤之前将查询包装在派生表中,或者也可以HAVING按以下方式使用(至少在MySql中)。

我看不到需要的内容DISTINCT h.movie_id(因为您想计算租金?-可能是DISTINCT h.hireid?),看来您需要按电影分组以计算租金的数量。

怎么样:

SELECT m.id, m.no_copies, COUNT(h.movie_id) AS num_rentals
FROM `movie` m
INNER JOIN hire h ON h.movie_id = m.id
GROUP BY m.id, m.no_copies
HAVING num_rentals < m.no_copies;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在where子句中使用别名-SQL

来自分类Dev

sql在where子句中使用查询别名

来自分类Dev

如何在 SQL Server 的 where 子句中使用别名

来自分类Dev

MYSQL在WHERE子句中使用别名

来自分类Dev

在where子句中使用的select中的聚合函数别名

来自分类Dev

从SELECT WHERE子句中使用别名从COALESCE

来自分类Dev

在where子句中使用别名“ case when”

来自分类Dev

在PostgreSQL的子查询的WHERE子句中使用别名

来自分类Dev

不能在where子句中使用的排名别名

来自分类Dev

在MySQL的WHERE子句中使用if / else结果别名

来自分类Dev

如何在 WHERE 子句中使用别名?

来自分类Dev

SQL查询:在WHERE子句中使用AND / OR

来自分类Dev

在Spark SQL的'WHERE'子句中使用'as'

来自分类Dev

在“ where”子句中使用新列

来自分类Dev

在“ where”子句中使用新列

来自分类Dev

为什么不能在WHERE子句中使用列别名?

来自分类Dev

在select子句中使用equals设置列别名

来自分类Dev

在JOIN的ON子句中使用别名

来自分类Dev

在JOIN的ON子句中使用别名

来自分类Dev

在OR子句SQL中使用别名

来自分类Dev

BigQuery SQL:在GROUP BY子句中使用时,SELECT别名是否优先于FROM子句的列名?

来自分类Dev

如何在MySQL的where子句中使用铅滞后功能使用别名

来自分类Dev

在WHERE子句中使用SQL VIEW(错误)

来自分类Dev

SQL在WHERE IN子句中使用CASE语句

来自分类Dev

在SQL查询的WHERE子句中使用表的值

来自分类Dev

CFWheels:在WHERE子句中使用SQL函数吗?

来自分类Dev

警告:在WHERE子句中使用IN的SQL Server UPDATE

来自分类Dev

在where子句中使用OR优化SQL语句

来自分类Dev

T-SQL-在where和子句中使用参数

Related 相关文章

热门标签

归档