SQL - 请求按用户查找平均贷款
SQL - request to find the average loans by user
我正在努力处理 SQL 请求。
我需要找到一个请求来计算每个用户的平均贷款。
我正在考虑在 table SUSCRIBER 和 table Loan 之间做一个 LEFT OUTER JOIN 为了得到所有订阅者,无论他们是否贷款。
然后我根据订阅者的 IDNumber 使用 GROUP BY COUNT 行数。然后我需要获得订阅者的总数来计算平均值,但通过这样做我只得到 1 或 0 而不是平均值。我不知道这个请求有什么问题。可能是因为我通过 table 贷款中的 IDNumber 进行了分组。我怎样才能根据这个请求得到所有 IDNumber 的数量来进行划分?谢谢
看到了,用英文写的请求:
SELECT COUNT(Loan.IDNumber) / COUNT(SUSCRIBER.IDNumber), SUSCRIBER.Name AS Name
FROM SUSCRIBER
LEFT OUTER JOIN Loan
ON SUSCRIBER.IDNumber = Loan.IDNumber
GROUP BY Loan.IDNumber;
以下是 table:
TOPIC(Code_topic, Description)
KEY_WORD(Code_key_word, keyword)
PUBLISHER(Code_publisher, Name, Adress)
AUTHOR(Code_author, Name, Surname)
BOOK(Code_catalogue, Title, #Code_topic)
COPY (Code_bookshelf, Code_wear, Date_aquisition, #Code_publisher, #Code_catalogue)
SUSCRIBER(IDNumber, Name, Adress, Phone, Birthdate, Subscription_date)
Loan(#IDNumber,Code_bookshelf,Loan_date, Return_date)
提前致谢
I need to find a request to calculate the average loans per user.
如果您想要每个订户的平均贷款数,那么您需要贷款总数除以订户数。你可以用这样的表达式来做到这一点:
SELECT num_l * 1.0 / num_s
FROM (SELECT COUNT(*) as num_s FROM SUBCRIBER) s CROSS JOIN
(SELECT COUNT(*) as num_l FROM Loan) l;
* 1.0
是因为有些数据库做整数除法,所以3 / 2 = 1
而不是1.5
。
我正在努力处理 SQL 请求。
我需要找到一个请求来计算每个用户的平均贷款。 我正在考虑在 table SUSCRIBER 和 table Loan 之间做一个 LEFT OUTER JOIN 为了得到所有订阅者,无论他们是否贷款。
然后我根据订阅者的 IDNumber 使用 GROUP BY COUNT 行数。然后我需要获得订阅者的总数来计算平均值,但通过这样做我只得到 1 或 0 而不是平均值。我不知道这个请求有什么问题。可能是因为我通过 table 贷款中的 IDNumber 进行了分组。我怎样才能根据这个请求得到所有 IDNumber 的数量来进行划分?谢谢
看到了,用英文写的请求:
SELECT COUNT(Loan.IDNumber) / COUNT(SUSCRIBER.IDNumber), SUSCRIBER.Name AS Name
FROM SUSCRIBER
LEFT OUTER JOIN Loan
ON SUSCRIBER.IDNumber = Loan.IDNumber
GROUP BY Loan.IDNumber;
以下是 table:
TOPIC(Code_topic, Description)
KEY_WORD(Code_key_word, keyword)
PUBLISHER(Code_publisher, Name, Adress)
AUTHOR(Code_author, Name, Surname)
BOOK(Code_catalogue, Title, #Code_topic)
COPY (Code_bookshelf, Code_wear, Date_aquisition, #Code_publisher, #Code_catalogue)
SUSCRIBER(IDNumber, Name, Adress, Phone, Birthdate, Subscription_date)
Loan(#IDNumber,Code_bookshelf,Loan_date, Return_date)
提前致谢
I need to find a request to calculate the average loans per user.
如果您想要每个订户的平均贷款数,那么您需要贷款总数除以订户数。你可以用这样的表达式来做到这一点:
SELECT num_l * 1.0 / num_s
FROM (SELECT COUNT(*) as num_s FROM SUBCRIBER) s CROSS JOIN
(SELECT COUNT(*) as num_l FROM Loan) l;
* 1.0
是因为有些数据库做整数除法,所以3 / 2 = 1
而不是1.5
。