由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - sql 题目求助
相关主题
菜鸟问题,急问个sql/ ssis的问题 谢谢!
谁能帮我看看这个Insert语句要怎么改一下?一个oracle performance 的问题。
请教一个query 优化的问题(filter keyword)高手请进
请教一个SQL的问题any group function reutrn null if there is null value?
sort two same tables SQL but different results请问sql 有条件性的select columns
SQL copy a table into a new table and add a new column如何除去duplicate rows?
sql query help请教一个sql问题
A rookie's query question请教一个SQL Server的面试题
相关话题的讨论汇总
话题: _.话题: acct话题: select话题: good话题: count
进入Database版参与讨论
1 (共1页)
k***n
发帖数: 997
1
1, 有一个客户_good_.dbo.transactions, 其中包括
acct: unique customer identifier, purchdate: date when purchase occurred,
purchasemt: purchase amount
要求:select all acct with first purchase happened in 2012 and his total
purchase amount > 250$
2, 还是这个table, find the proportion of customers that made more than one
purchases in 2012 fiscal year. return a table where col1 is number of
customers that made more than one purchases in 2012 fiscal year, col2 total
number of customers ever purchased from us, col3 show percentage.
(1) fiscal year starts on 8/1
(2) only select customers with purchase amount > 0.0
下面的解法对么:
1。
select acct, min(purchasedate) as firstgd, sum(purchasemt) as totalg
into _good_.dbo.temp
from _good_.dbo.transactions
group on acct
select acct
from _good_.dbo.temp
where (firstgd between #1/1/2012# and #12/31/2012#) and totalg >= 250
2.
select acct
into _good_.dbo.temp1
from _good_.dbo.transactions
where purchasemt > 0 and purchasedate between #9/1/2011# and #8/31/2012#;
select acct, count(purchasedate) as freq
into _good_.dbo.temp2
from _good_.dbo.temp1
group on acct ;
select acct,freq, count(*) as totalcm
into _good_.dbo.temp3
from _good_.dbo.temp2 ;
select count(acct) as tarcm, totalcm
into _good_.dbo.temp4
from _good_.dbo.temp3
where freq > 1;
select tarcm, totalcm, tarcm*100.0/totalcm as percent
from _good_.dbo.temp4 ;
本人初学数据库,现学现卖的code让大牛们见笑了
k***n
发帖数: 997
2
B*****g
发帖数: 34098
3
90%以上的数据库版SQL问题可以用partition by解决

【在 k***n 的大作中提到】
: 1, 有一个客户_good_.dbo.transactions, 其中包括
: acct: unique customer identifier, purchdate: date when purchase occurred,
: purchasemt: purchase amount
: 要求:select all acct with first purchase happened in 2012 and his total
: purchase amount > 250$
: 2, 还是这个table, find the proportion of customers that made more than one
: purchases in 2012 fiscal year. return a table where col1 is number of
: customers that made more than one purchases in 2012 fiscal year, col2 total
: number of customers ever purchased from us, col3 show percentage.
: (1) fiscal year starts on 8/1

l******n
发帖数: 9344
4
你翻来覆去就这一句话...

【在 B*****g 的大作中提到】
: 90%以上的数据库版SQL问题可以用partition by解决
B*****g
发帖数: 34098
5
SQL题翻来覆去就那一个解法

【在 l******n 的大作中提到】
: 你翻来覆去就这一句话...
k***n
发帖数: 997
6
Partition by都没包含在我学习的tutorial里,用简单方法做呢?

【在 B*****g 的大作中提到】
: SQL题翻来覆去就那一个解法
B*****g
发帖数: 34098
7
google一下having的用法

【在 k***n 的大作中提到】
: Partition by都没包含在我学习的tutorial里,用简单方法做呢?
k***n
发帖数: 997
8

我学过having,但是想不到这道题是要用到它。
看来光看教程距离搞定sql还远

【在 B*****g 的大作中提到】
: google一下having的用法
B*****g
发帖数: 34098
9
多练

【在 k***n 的大作中提到】
:
: 我学过having,但是想不到这道题是要用到它。
: 看来光看教程距离搞定sql还远

s********e
发帖数: 893
10
看了历史贴,Beijing从来都是授渔,偶尔授鱼。我现在经常使用partition by就是1个
月前Beijing授渔所得。
我觉得你那几个query都没问题,只是完全可以融合成一个。比如第二问,
我用自己的table在Oracle试了一下,用了 union 两个query,然后sum。
大体框架就是
select sum(aa) , sum(bb), sum(aa)/sum(bb)
from
select count(count(acct)) aa,0 bb
from ttt
where XXX
group by XX having count(*) XX
union
select 0, count(count(acct))
where XXX
group by XX having count(*) XX
一个query就可以得到你想要的结果。
k***n
发帖数: 997
11
我刚装了mysql来run我的code发现run不了,也不知道怎么调
其它数据库比如oracle, ms sql server下面语法也不一样
应该用那一个环境学习呢?

【在 B*****g 的大作中提到】
: 多练
k***n
发帖数: 997
12
Thanks a lot.
当时我忘了subquery怎么写,网上google了一下找到了ms sql和mysql的不同版本,时
间紧没办法仔细看,也就没用。

【在 s********e 的大作中提到】
: 看了历史贴,Beijing从来都是授渔,偶尔授鱼。我现在经常使用partition by就是1个
: 月前Beijing授渔所得。
: 我觉得你那几个query都没问题,只是完全可以融合成一个。比如第二问,
: 我用自己的table在Oracle试了一下,用了 union 两个query,然后sum。
: 大体框架就是
: select sum(aa) , sum(bb), sum(aa)/sum(bb)
: from
: select count(count(acct)) aa,0 bb
: from ttt
: where XXX

B*****g
发帖数: 34098
13
为啥是union?union all行吗?
为啥要合并,一个group by能解决不?

【在 s********e 的大作中提到】
: 看了历史贴,Beijing从来都是授渔,偶尔授鱼。我现在经常使用partition by就是1个
: 月前Beijing授渔所得。
: 我觉得你那几个query都没问题,只是完全可以融合成一个。比如第二问,
: 我用自己的table在Oracle试了一下,用了 union 两个query,然后sum。
: 大体框架就是
: select sum(aa) , sum(bb), sum(aa)/sum(bb)
: from
: select count(count(acct)) aa,0 bb
: from ttt
: where XXX

k***n
发帖数: 997
14
update:被拒了,原因是我写的两题code都无法得到正确的resultset, 且有syntax
error
果然被鄙视了

【在 k***n 的大作中提到】
: 1, 有一个客户_good_.dbo.transactions, 其中包括
: acct: unique customer identifier, purchdate: date when purchase occurred,
: purchasemt: purchase amount
: 要求:select all acct with first purchase happened in 2012 and his total
: purchase amount > 250$
: 2, 还是这个table, find the proportion of customers that made more than one
: purchases in 2012 fiscal year. return a table where col1 is number of
: customers that made more than one purchases in 2012 fiscal year, col2 total
: number of customers ever purchased from us, col3 show percentage.
: (1) fiscal year starts on 8/1

1 (共1页)
进入Database版参与讨论
相关主题
请教一个SQL Server的面试题sort two same tables SQL but different results
SQL select one value column for each distinct value another (转载)SQL copy a table into a new table and add a new column
问个简单的sql语句sql query help
请教几个面试题A rookie's query question
菜鸟问题,急问个sql/ ssis的问题 谢谢!
谁能帮我看看这个Insert语句要怎么改一下?一个oracle performance 的问题。
请教一个query 优化的问题(filter keyword)高手请进
请教一个SQL的问题any group function reutrn null if there is null value?
相关话题的讨论汇总
话题: _.话题: acct话题: select话题: good话题: count