统计acct_item_aggr_test_bak 表 serv_id为 112201218000836851 的用户,不同费用来源的的记录条数、 费用之和,并且用费用来源字段倒序排列(字段解释参考建表语句1)
时间: 2023-05-25 07:02:08 浏览: 109
A:
可以使用以下SQL语句实现:
SELECT fee_source, COUNT(*) as record_count, SUM(total_fee) as total_fee_sum
FROM acct_item_aggr_test_bak
WHERE serv_id = '112201218000836851'
GROUP BY fee_source
ORDER BY fee_source DESC;
相关问题
`set line 230 pagesize 5000 select owner || '.' || table_name ||',' as text from dba_tables where owner in ( 'LS6_ACCT_WH', 'LS65_ACCT_YC', 'LS65_ACCT_EZ', 'LS65_ACCT_SZ', 'LS65_ACCT_XG', 'LS65_ACCT_SY', 'LS65_ACCT_XF', 'LS65_ACCT_ES', 'LS65_ACCT_SNJ', 'LS65_ACCT_JZ', 'LS65_ACCT_HG', 'LS65_ACCT_XN', 'LS65_ACCT_JM', 'LS65_ACCT_HS', 'LS65_ACCT_XT', 'LS65_ACCT_TM', 'LS65_ACCT_QJ', 'LS65_ACCTM_MVNO' )
这是一条SQL查询语句,用于从Oracle数据库中的dba_tables视图中检索指定表所有者和表名,并按照指定格式返回结果。其中:
- set line 230:设置每行的最大字符数为230
- pagesize 5000:设置每页最多显示5000行数据
- select owner || '.' || table_name ||',' as text:查询dba_tables视图中指定表的所有者和表名,并将它们连接起来,用"."作为分隔符,再加上一个逗号,作为查询结果的别名为text。
- where owner in ('LS6_ACCT_WH', 'LS65_ACCT_YC', 'LS65_ACCT_EZ', 'LS65_ACCT_SZ', 'LS65_ACCT_XG', 'LS65_ACCT_SY', 'LS65_ACCT_XF', 'LS65_ACCT_ES', 'LS65_ACCT_SNJ', 'LS65_ACCT_JZ', 'LS65_ACCT_HG', 'LS65_ACCT_XN', 'LS65_ACCT_JM', 'LS65_ACCT_HS', 'LS65_ACCT_XT', 'LS65_ACCT_TM', 'LS65_ACCT_QJ', 'LS65_ACCTM_MVNO'):筛选出指定所有者的表,其中"in"表示所有者可以是列表中的任意一个名称。
执行这个SQL查询语句会返回指定表的所有者和表名的列表,每行最多显示230个字符,每页最多显示5000行,格式为"owner.table_name,"。
set lines 400 set pages 9999 set long 400 select 'create synonym ' || decode(owner,'LS6_ACCT_WH','LS6_HIST_WH', replace(owner, 'LS65_ACCT', 'LS6_HIST')) || '.' || table_name || ' for ' || decode(owner,'LS6_ACCT_WH','LS6_HIST_WH', replace(owner, 'LS65_ACCT', 'LS6_HIST')) || '.' || table_name || '@newhtls1;' as text from dba_tables where owner in('LS65_ACCT2','LS6_ACCT_WH', 'LS65_ACCT_YC','LS65_ACCT_EZ','LS65_ACCT_SZ','LS65_ACCT_XG', 'LS65_ACCT_SY','LS65_ACCT_XF','LS65_ACCT_ES','LS65_ACCT_SNJ', 'LS65_ACCT_JZ','LS65_ACCT_HG','LS65_ACCT_XN','LS65_ACCT_JM', 'LS65_ACCT_HS','LS65_ACCT_XT','LS65_ACCT_TM','LS65_ACCT_QJ', 'LS65_ACCTM_MVNO') and table_name like '%202303%_T' and table_name not like 'BILL%_T' and table_name not like 'ERROR%_T' and table_name not like 'RB%_T' and table_name not like 'A0%' and table_name not like 'A1%' and table_name not like 'BIN%' order by 1;
这段代码是一个 SQL 查询语句,用于生成一组创建同义词的 SQL 语句,并将结果按照 text 列进行排序。具体操作为:
- 设置 SQL*Plus 的输出格式:每行最多显示 400 个字符,总共显示 9999 行,将 LONG 类型的字段最多显示 400 个字符。
- 查询 dba_tables 视图,获取表所属的 owner、表名以及符合一定条件的表,生成创建同义词的 SQL 语句。
- decode 函数用于根据 owner 的值进行判断,如果 owner 是 LS6_ACCT_WH,则将其替换成 LS6_HIST_WH,如果 owner 是 LS65_ACCT,则将其替换成 LS6_HIST。
- 使用 replace 函数将 owner 中的 LS65_ACCT 替换成 LS6_HIST。
- 将查询结果拼接成一个 SQL 语句,格式为:create synonym owner.table_name for owner.table_name@newhtls1;,其中 owner 和 table_name 是查询结果中的值。
- 最后将查询结果按照 text 列进行排序。
阅读全文