数值策划常用数据库语句
数值策划常常要与数据库打交道,最常见的就是每过一段时间针对游戏日志信息进行统计分析。这篇可以算是一个备忘录,venjet用到什么不容易记住语句就把它记录到这里,以后找起来也方便。对于数据库熟悉的不需要看,对数据库不熟悉的需要学习一下基础知识。所以,这篇应该算是自用的备忘(路人甲:那拜托你设成private啊private…)
1 常用函数
count()-计数
sum()-求和
min(),max()-最值
avg()-平均值
day()-取时间字段的天值,同理还有month(), year()…Access有DateValue()函数,可以根据字段内容转换成相应格式的日期。
hex()-十进制转为十六进制
left(a,b)-返回字符串a左起b个字符的部分。同理还有right()(关于中文字是1个字符还是2个字符的问题,与数据库的定序(COLLATE)有关,用的时候问下程序就行。)
举例
SELECT count(*) as 计数,sum([Money]) as 总和,min([Money]) as 最小值,max([Money]) as 最大值,avg([Money]) as 平均值
FROM dbo_MoneyLog_2009_05
WHERE ((dbo_MoneyLog_2009_05.[why])=”任务添加”)
2 Group by子句
将查询结果按照Group by后面的内容进行分类,比如Group by [ID],Group by day([Time])
举例
SELECT day(TIME) as 日期,count(*) as 次数
FROM dbo_MoneyLog_2009_05
WHERE ((dbo_MoneyLog_2009_05.[why])=”捡到晶石”) group by day([TIME])
3 UNION 操作符
用来合并多个select语句的结果,合并的select列数必须一致。统计的时候常常用来将月份数据合并来统计年度数据。(不过话说月度数据出来了用excel统计年度数据更方便一点…)
使用上UNION ALL会列出所有的值,而UNION不会列出重复的值
举例
select [Times] as 时间,sum([counts]) AS 次数, Sum([Moneys]) AS 金额
from(SELECT DateValue([Time]) as times,count(*) AS counts, Sum([Money]) AS moneys
FROM dbo_MoneyLog_2009_04
where [why]=”捡到晶石”
group by DateValue([Time])
UNION ALL
SELECT DateValue([Time]) as times,count(*) AS counts, Sum([Money]) AS moneys
From dbo_MoneyLog_2009_05
where [why]=”捡到晶石”
GROUP BY DateValue([Time]))
Group by [Times]
Category: Technology | Tags: sql, 数据库 Comment »