oracle - 光标获取每个人拥有的汽车数量
问题描述
我是 Oracle 和 DBMS 的新手,我有两个表 CAR_OWNER 和 CAR。我试图通过使用光标和循环来获取每个人拥有的汽车数量,但我应该通过加入来完成吗?或者有一个特定的功能可以做到这一点?下面是我的代码:
declare
v_PNR CAR_OWNER.PNR%TYPE;
i NUMBER;
cursor c_custcell is
select First_name, Last_Name, PNR from CAR_OWNER;
begin
i:=1;
if not (c_custcell%isopen) then
open c_custcell;
end if;
loop
i := i +1;
exit when i = 11;
fetch c_custcell into v_First_name, v_Last_name, v_PNR;
exit when c_custcell%notfound;
dbms_output.put_line(''||initcap (v_First_name)||', '||initcap (v_Last_name)||', '||v_PNR||', '||i||',');
end loop;
end;
/
解决方案
按所有者分组会更容易,并且count
:
SELECT INITCAP(first_name), INITCAP(last_name), COUNT(*)
FROM car_owners
GROUP BY first_name, last_name
推荐阅读
- spring - 为什么在使用 httpclient 和 java.net 之间会产生不同的响应代码?
- java - 哪个目录放置外部罐子?
- javascript - 如何从请求中获取上传的文件?
- firebase - Firestore 安全规则。用户可以知道人们的 UID 吗?
- apache-kafka - 添加到 connect-mirror-maker.properties MirrorMaker 2 时,SMT 不起作用
- python-3.x - 最后如何摆脱空白?
- powershell - 尝试使用 Graph Api 将成员或所有者添加到团队时出错
- html - 替代 flexbox 进行图像定位?
- c++ - 如何调用具有编译时类型集合的函数并迭代它们?
- java - 无法使用 FileObserver 观察文件夹内的文件