我有一些查询MySQL数据库的经验,我正在学习如何在Oracle中做同样的事情。我有多难理解这个问题。假设我有一个DEMOGRAPHICS表,其中包含以下列:DATE_OF_BIRTH,GENDER,RACE,ETHNICITY。还有一张CAR列表,其中列出了不同品牌的汽车(丰田,福特等)。我将如何创建一份统计报告,列出男性,女性,白人,亚洲人,黑人,西班牙人,非西班牙人以及两个年龄段(18-30岁和50-70岁)列中的每辆汽车制造商和相应的百分比率。百分比应四舍五入至小数点后两位。它应该是这样的: enter image description here 我会很感激任何帮助,包括对类似查询的引用。 谢谢!用于统计报告的PL/SQL查询?
0
A
回答
0
需要更多信息。 WHITE,亚洲人,黑人< ==在这些掉落下RACE列 拉美裔,而不是西班牙< ==这些都在下降柱族群社区调查
0
drop table demographics
drop table car
create table car(MAKE_ID number primary key, MAKE varchar2(30));
create table demographics(DATE_OF_BIRTH date , GENDER varchar2(10), RACE varchar2(30), ETHNICITY varchar2(30), MAKE_ID references car);
--insert into car table
insert into car values(1,'Toyota');
insert into car values(2,'Ford');
insert into car values(3,'GM');
--inserts 1000 rows into the demographics table
insert into demographics
select trunc(sysdate) - level as dob
,case when mod(level,2)=0 then 'MALE' else 'FEMALE' end as gender
,case when mod(level,2)=0 then 'WHITE' else 'BLACK' end as race
,case when mod(level,4)=0 then 'ASIAN'
when mod(level,3)=0 then 'HISPANIC'
when mod(level,2)=0 then 'NOT HISPANIC'
else 'LATINO'
end as ethnicity
,case when mod(level,3)=0 then 3
when mod(level,2)=0 then 2
when mod(level,1)=0 then 1
end as make_id
from dual
connect by level<=1000;
select make
,round((cnt_MAKE/tot_cnt)*100,2) as MALE_PERCENT
,round((cnt_MAKE/tot_cnt)*100,2) as FEMALE_PERCENT
from(
select a.make
,count(case when b.gender ='MALE' then 1 end) as cnt_MALE
,count(case when b.gender ='FEMALE' then 1 end) as cnt_FEMALE
,count(case when b.race ='WHITE' then 1 end) as cnt_WHITE
,count(case when b.ethnicity ='ASIAN' then 1 end) as cnt_ASIAN
,count(case when b.race ='BLACK' then 1 end) as cnt_BLACK
,count(case when b.ethnicity ='HISPANIC' then 1 end) as cnt_HISPANIC
,count(case when b.ethnicity ='NOT HISPANIC' then 1 end) as cnt_NOT_HISPANIC
,count(*) as tot_cnt
from car a
join demographics b
on a.make_id=b.make_id
group by a.make
)
相关问题
- 1. 用于统计节点的XPath查询
- 2. 2sxc - 用于统计的查询数据
- 3. 统计汇总报告Intreprtation
- 4. SQL:与用户每日报告统计
- 5. PLSQL触发 - 基于选择查询
- 6. SQL查询SSRS报告
- 7. Sqlite查询报告SQLITE_CORRUPT
- 8. SSRS报告 - 参数查询
- 9. C#报告通过查询
- 10. SQL查询在SSRS报告
- 11. WebApp /服务器/服务统计报告
- 12. gmail脚本(统计报告)部署
- 13. TortoiseHG/Mercurial项目统计和报告
- 14. 在统计查询
- 15. MySQL查询统计
- 16. 用于提取所有报告的LDAP查询
- 17. 用于数据验证查询的报告解决方案
- 18. 计数(IIF(用于访问报告
- 19. 在Oracle子查询中使用参数用于SSRS报告
- 20. VS报告 - 报告查看器不适用于ASP:面板
- 21. Yii中的统计查询
- 22. SQL Server的统计查询
- 23. 用于统计用户未读消息的MySQL查询
- 24. 确定Access 1997报告用于生成哪些查询?
- 25. Linq查询报告EF4.2中计算列上的'无效列名'
- 26. 用于统计一行内的值的SQL查询
- 27. 基于SQL查询的快速和肮脏的报告
- 28. LINQ to SQL的报告表中查询
- 29. 一个报告的sql查询
- 30. 水晶报告中的递归查询
谢谢你的回复! WHITE,ASIAN,BLACK在RACE,HISPANIC,NOT HISPANIC下属于种族。你为什么一开始就放弃两张桌子?假设我在这两个表中都有成千上万的列表,将它们中的每一个逐一插入到一个新表格中都不是很有效。 – icittar
放下不是必需的,但由于我已经在我的模式中有一个名为人口统计的表,我放弃了它 –