使用分析自行加入而不分组
Self join without grouping using analytics
我正在创建一个程序,该程序 objective 返回满足一组条件的第一条记录。
CREATE OR REPLACE VIEW V_ACCOUNTS AS
SELECT
A.ID,
A.BALANCE,
A.PRODUCTCODE,
(SELECT COUNT(*) FROM ACCOUNTS A2 WHERE A.CUSTOMERID=A2.CUSTOMERID) CUSTOMER_NUM_ACCOUNTS
FROM ACCOUNTS A
例如
SELECT * FROM V_ACCOUNTS WHERE ROWNUM = 1 AND PRODUCTID = 467 AND CUSTOMER_NUM_ACCOUNTS > 2
这是否可以增强上述查询,从而避免在同一个 table 上进行自连接?我可以在条件下使用分析吗?
性能是一个问题,我想尽可能地优化查询。
COUNT
分析函数可能有帮助:
create or replace view v_accounts as
select
a.id,
a.balance,
a.productcode,
count(*) over (partition by a.customerid) customer_num_accounts
from accounts a
我正在创建一个程序,该程序 objective 返回满足一组条件的第一条记录。
CREATE OR REPLACE VIEW V_ACCOUNTS AS
SELECT
A.ID,
A.BALANCE,
A.PRODUCTCODE,
(SELECT COUNT(*) FROM ACCOUNTS A2 WHERE A.CUSTOMERID=A2.CUSTOMERID) CUSTOMER_NUM_ACCOUNTS
FROM ACCOUNTS A
例如
SELECT * FROM V_ACCOUNTS WHERE ROWNUM = 1 AND PRODUCTID = 467 AND CUSTOMER_NUM_ACCOUNTS > 2
这是否可以增强上述查询,从而避免在同一个 table 上进行自连接?我可以在条件下使用分析吗? 性能是一个问题,我想尽可能地优化查询。
COUNT
分析函数可能有帮助:
create or replace view v_accounts as
select
a.id,
a.balance,
a.productcode,
count(*) over (partition by a.customerid) customer_num_accounts
from accounts a