请教SQL问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教SQL问题相关的知识,希望对你有一定的参考价值。

1.
n根据所给的商品库和教学库, 前三小题的每条SQL查询语句写出相应的功能, 后两小题的每种功能写出相应的SQL查询语句。
1.select X.商品代号,分类名,数量,品牌 from商品表1 X,商品表2 Y where X.商品代号=Y.商品代号 2.select 专业,count(*) as 专业人数 from学生 group by专业 order by专业人数 desc 3.select课程.课程号,课程.课程名,count(*) as 选课人数 from课程,选课 where课程.课程号一选课.课程号 group by课程.课程号,课程.课程名 4.从商品库中查询出数量大于10的商品种数。 5.从商品库中查询出比所有商品单价的平均值要高的全部商品。 (40.00分)

参考技术A 虽然回答晚了,但希望对你能有所帮助

1.3、SELECT au_fname, au_lname, au_id FROM authors WHERE (au_id LIKE '_____80%')
修改:WHERE substring(au_id,5,2)='80' ;where 语句后不一定非要加(), 我不知道au_id是什么类型的,如果au_id是整数类型,要转换一下,如下:
WHERE substring(cast(au_id as char(30),5,2)='80'

1.4、SELECT titles.*, price AS Expr1 FROM titles WHERE (price > 15)
修改:既然你写了titles.*,那就不用再写price了,因为*代表了所有的字段,建议在select语句中不要用*

2.1、SELECT *, 姓名 AS Expr1, 年龄 AS Expr2, 出生日期 AS Expr3, 工作时间 AS Expr4, 工资 AS Expr5 FROM 职工工资 WHERE (年龄 > 30)
修改:问题同上

2.3、SELECT *, 姓名 AS Expr1, 年龄 AS Expr2, 总收入 AS Expr3 FROM 职工工资 WHERE (总收入 >= 4000)
修改:问题同上

3.1、SELECT *, city AS Expr1 FROM authors WHERE (city = 'OAKLAND')
修改:问题同上

3.2、SELECT COUNT(*) AS Expr1, state, MAX(zip) AS 最大值 FROM authors GROUP BY state
修改:去掉COUNT(*) AS Expr1, 真不明白你为会么一定要求出count(*)的值呢!

3.3、SELECT COUNT(*) AS Expr1, SUM(qty) AS 总量 FROM sales
修改:去掉COUNT(*) AS Expr1,

3.4、SELECT COUNT(*) AS Expr1, AVG(price) AS 平均值 FROM titles WHERE (type = 'BUSINESS')
修改:去掉COUNT(*) AS Expr1,

3.5、SELECT * FROM authors WHERE (NOT (state IN ('CA')))
修改:SELECT * FROM authors WHERE state >'CA'
或SELECT * FROM authors WHERE state not in('CA')

基本的sql语法,要再看一看。
参考技术B 1、在商品表1和商品表2查出共同的商品信息(商品代号,分类名,数量,品牌)
2、统计每个专人人数,并从高到低显示
3、统计每个课程选课人数
4、select * from 商品表 where 数量>10
5、select * from 商品表 where 价格>(select avg(价格) from 商品表)
参考技术C 1.查出表X和Y中具有相关联的(商品代号) X.商品代号,分类名,数量,品牌,

2.从学生表中查出专业,专业人数,按专业分组,专业人数倒序排列

3.从课程和选课两个表查相关联的(课程.课程号一选课.课程号)(课程.课程号,

课程.课程名,count(*) as 选课人数) 按课程.课程号,课程.课程名分组(和第一个差不多的)。
4.select count(商品) from 表where 数量>10
(select count(uid) from aatitle group by uid having count(uid)>1)
5.select 商品 from 表 where 单价> (select avg(单价) from 表)
参考技术D 1,从商品表1 X,商品表2 Y中,选出表X的商品代号等于表Y的商品代号的 表X的商品代号,分类名,数量,品牌。
2,对学生表按专业分组中,从中列出专业,各组专业人数,并按专业人数降序排序。
3,课程.课程号一选课.课程号
4,select 商品种数 from商品库 where 数量>10;
5, select * from 商品库 where 商品单价>avg(商品单价);

[SQL] 请教一下 count里面有case when 一般情况下啥时候用

http://www.itpub.net/forum.php?mod=viewthread&tid=1810967

问题:

比如 count(case when  pday_id=${deal_date}   then 1  end)  我有点想不明白具体什么情况下count() 这个小括号里面还要用case when  大家做BI统计的时候一般什么情况用啊  
还有个问题 select case when actionname in (\'haha\',\'heihei\') then \'-1\' else case when operateType=\'1\' and restype=\'3\' then resid   一般case when 是原来的表里没有的字段  我们人为构造的一个字段  这个sql语句的意识是当action这个字段是\'haha\'或者\'heihei\'时 我们case when 这个字段是-1  当 operateType=\'1\' and restype=\'3\' 这个构造的case when 字段是resid这个字段的值    那 同时不符合这两种情况下的我们构造的case when这个字段的值是多少啊  请教各位了  谢谢

 

 

 then 后面的和 else 后面的数据类型要一致

 

以上是关于请教SQL问题的主要内容,如果未能解决你的问题,请参考以下文章

请教大家一个有些SQL里面INNER JOIN的问题

MSSQL 高手请进,有问题请教!!

菜鸟请教sql问题

SQL问题,请教高手

请教SQL server 2008 R2 日志过大问题

关于Oracle的SQL语句中group by的空值问题请教?