打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
亚信一道数据仓库面试题引出的一个问题(原)
userphoto

2012.01.17

关注
分类: Data Warehouse

亚信一道数据仓库的一个很普通的面试题,我发现了一个问题,谁能帮我解释一下。
题目是这样的:
年龄维:
id subl_id age_min age_max age_desc   sub_desc
1     1       1      10      1-15       1-10
1     2       11     15      1-15       11-15
2     3       16     25      16-30      16-25
2     4       26     30      16-30      26-30
3     5       30     45      30-45      30-45
事实表:
cust_id sex age deposit
1 1 7 300
2 2 20 30
3 1 16 300
4 1 39 20
 
场景1:
查询性别为1,年龄小于50,按照age_desc分组计算的客户数。
 
方法1:(这时候AGE字段是NUMBER类型的)
sql语句如下:
SELECT dim.AGE_DESC,COUNT(f.CUST_ID),SUM(deposit)
FROM AGE_DIM DIM,
           AFACT F
WHERE F.SEX=1
AND F.AGE<50
AND F.AGE >=DIM.AGE_MIN
AND F.AGE <=DIM.AGE_MAX
GROUP BY DIM.AGE_DESC
 
得到的结果如下
1 16-30 1 300
2 1-15 1 300
3 30-45 1 20
 
场景2:(这时候我把AGE字段由原来的NUMBER改成VARCHAR2(100)类型)
运行上面的SQL语句,得到的结果确实这样的。
1 16-30 1 300
2 30-45 1 20
 
发现没有统计出这“1 1 7 300”一条数据,应该要出来的,我把7改成1到9之间的数字不能出来,换成10到15之间的数据能出来
这确实是我遇到的一个奇怪的问题。
 
有兴趣的朋友测试试验一下。难道是ORACLE的一个BUG?请哪位大虾指导一下。。。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SQL基础入门:第7课:查询数据
Passing an Array of Strings to a C++ DLL using SAFEARRAY
在ASP.NET MVC中进行排序
Python MySQL数据库2:数据库查询
学习 SQL Server (4) : 多种查询语句
php – 如何将普通的sql查询转换为Zend_Db_Select?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服