前些天,遇到两个问题,还没有搞清楚,望大家指点一二。1)表结构如下:
姓名 科目 分数
张三 语文 80
张三 数学 90
张三 英语 60
李四 语文 60
李四 数学 69
李四 英语 78现通过一个SELECT语句,查询出来后,如下, 语文 数学 英语
张三 80 90 60
李四 60 69 78
2)有一个网站,现要记录访问量及频率等问题,现有一张表,有两个字段,TIME,IP,
TIME字段用来记录访问时间,IP字段用来记录所访问者的IP地址,
现时间以0~23分化为24个区域,要通过一个SQL语句来记录每个区域的访问量。
请问,这两个SQL语句各应如何,谢谢。
姓名 科目 分数
张三 语文 80
张三 数学 90
张三 英语 60
李四 语文 60
李四 数学 69
李四 英语 78现通过一个SELECT语句,查询出来后,如下, 语文 数学 英语
张三 80 90 60
李四 60 69 78
2)有一个网站,现要记录访问量及频率等问题,现有一张表,有两个字段,TIME,IP,
TIME字段用来记录访问时间,IP字段用来记录所访问者的IP地址,
现时间以0~23分化为24个区域,要通过一个SQL语句来记录每个区域的访问量。
请问,这两个SQL语句各应如何,谢谢。
select 姓名 ,sum(decode(科目,'语文',分数,0)),sum(decode(科目,'数学',分数,0)),sum(decode(科目,'英语',分数,0))
from table group by 姓名
select time ,count(ip) from table group by time
select 姓名,
max(case when 科目="语文" then 分数 else 0) 语文,
max(case when 科目="数学" then 分数 else 0) 数学,
max(case when 科目="英语" then 分数 else 0) 英语
from 成绩表;2.
select trunc(time,'hh') time,count(ip) from table group by time;没有测试,下次记得发建表语句
group by 姓名
以小时为单位,划分成0~23共24个区域。