gpt4 book ai didi

mysql - 仅用 1 个请求替代 2 个 SQL/ORACLE 请求

转载 作者:行者123 更新时间:2023-11-29 12:25:14 24 4
gpt4 key购买 nike

我试图在一个请求中获取两个请求的结果,以下两个请求都是有效的,并且每个请求都会生成一个包含两列的表格:

SELECT patron.last_name, COUNT(*) AS **pret**
FROM circ_transaction_log INNER JOIN patron ON circ_transaction_log.patron_id=patron.patron_id
AND **circ_transaction_log.transaction_type<5**
AND patron.college_or_school = 'High School'
GROUP BY patron.last_name;

姓氏 | 漂亮
________________
史蒂文·格雷尔 | 552
米歇尔·文斯 | 米歇尔·文斯122...

________________________ _________________________

SELECT patron.last_name, COUNT(*) AS **resa**
FROM circ_transaction_log INNER JOIN patron ON circ_transaction_log.patron_id=patron.patron_id
AND **circ_transaction_log.transaction_type BETWEEN 5 AND 10**
AND patron.college_or_school = 'High School'
GROUP BY patron.last_name;

姓氏 | 雷萨
________________
史蒂文·格雷尔 | 12
米歇尔·文斯 | 米歇尔·文斯8
...

我想要得到的结果是这样的:

姓氏 | 雷萨 | 漂亮
___________________________________
史蒂文·格雷尔 | 552 | 552 12
米歇尔·文斯 | 米歇尔·文斯122 | 122 8
...

但我认为困难在于我两次请求同一个表(表 CIRC_TRANSACTION_LOG),而我尝试的任何内容都是错误的或不起作用

提前感谢您的回复

问候,尼克

最佳答案

你正在追求这样的东西,那么:

SELECT   p.last_name, 
COUNT(case when ctl.transaction_type < 5 then 1 end) AS pret,
count(case when ctl.transaction_type between 5 and 10 then 1 end) as resa
FROM circ_transaction_log ctl
INNER JOIN patron p ON (ctl.patron_id = p.patron_id)
AND ctl.transaction_type <= 10 -- possibly not required if transaction_type is always <= 10
AND p.college_or_school = 'High School'
GROUP BY p.last_name;

注意。未经测试,因为您没有为表提供任何示例数据。

关于mysql - 仅用 1 个请求替代 2 个 SQL/ORACLE 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28431179/

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