由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
SanFrancisco版 - 再请教SQL问题 (转载)
相关主题
一个SQL的问题(Groupby和Having的问题) (转载)转载:真实生活中的湾区猥琐夫妇 by jessicache
请教SQL问题 (转载)真实生活中的湾区猥琐夫妇 (转载)
sql 的大牛来帮我解决一个菜鸟问题其实google+的圈子是个很傻的东西
SQL课程是不是死个中国人大家就要捐钱?
SQL join的order优化问题 (转载)请教一下想装一个comcast的internet,现在最便宜的市价是多少?
Bing搜索下三烂,太不要脸了北美码农在微博上被人赤果果的BS了一下 (转载)
相聚9/30 Synnyvale Baylands Park 三藩版年度BBQ说说国人不该有的思想 (转载)
马不停蹄的忧伤.第一份工作 (上)说说国人在工作里互相团结的小事,举几个例子,大家共勉。
相关话题的讨论汇总
话题: grade话题: sql话题: having话题: customer话题: select
进入SanFrancisco版参与讨论
1 (共1页)
h*********n
发帖数: 915
1
【 以下文字转载自 JobHunting 讨论区 】
发信人: heavyburden (nothing), 信区: JobHunting
标 题: 再请教SQL问题
发信站: BBS 未名空间站 (Fri Mar 16 02:59:28 2012, 美东)
table Orders:
primary key order_id, foreign key customer_id
table Customers:
primary key customer_id, name, address
find out if there's any customer not having any order.
single query, and no nested query allowed.
F**e
发帖数: 593
2
SELECT c.customer_id
FROM Customers c
RIGHT JOIN Orders o
USING (customer_id)
WHERE o.order_id IS NULL;

【在 h*********n 的大作中提到】
: 【 以下文字转载自 JobHunting 讨论区 】
: 发信人: heavyburden (nothing), 信区: JobHunting
: 标 题: 再请教SQL问题
: 发信站: BBS 未名空间站 (Fri Mar 16 02:59:28 2012, 美东)
: table Orders:
: primary key order_id, foreign key customer_id
: table Customers:
: primary key customer_id, name, address
: find out if there's any customer not having any order.
: single query, and no nested query allowed.

h*********n
发帖数: 915
3
蛋定老兄SQL很熟啊。
再来一个:学生编号,课程,成绩。判断是否有一个学生所有成绩没有F也没有A。每个
学生选的课可能不同。
Records: Id, Course, Grade

【在 F**e 的大作中提到】
: SELECT c.customer_id
: FROM Customers c
: RIGHT JOIN Orders o
: USING (customer_id)
: WHERE o.order_id IS NULL;

M*m
发帖数: 141
4
select id
from T
group by id
having max(grade) <> 'A' and min(grade) <> 'A' and max(grade) <> 'F' and min
(grade) <> 'F'
h*********n
发帖数: 915
5
您这个不对。算出来的是至少有一门成绩在B和D之间的所有学生。
要找一个学生,他的所有成绩都在B和D之间。

min

【在 M*m 的大作中提到】
: select id
: from T
: group by id
: having max(grade) <> 'A' and min(grade) <> 'A' and max(grade) <> 'F' and min
: (grade) <> 'F'

s********o
发帖数: 861
6
select count(1)
from T
group by id
having min(grade) > 'A' and max(grade) < 'F'
假设grade是个单字符的string. A-F.

【在 h*********n 的大作中提到】
: 您这个不对。算出来的是至少有一门成绩在B和D之间的所有学生。
: 要找一个学生,他的所有成绩都在B和D之间。
:
: min

s********o
发帖数: 861
7
不许用nested query只是面试问题。实际工作中用不着自己折磨自己,尽管用好了。正
确的nested query没有 performance problem.
h*********n
发帖数: 915
8
您和楼上的答案没区别,找的还是“所有……至少……”,而不是“至少……所有……”
比如:
张三 数学 B
张三 语文 A
李四 数学 B
李四 语文 B
我要找李四,您的答案张三李四都出来了。

【在 s********o 的大作中提到】
: select count(1)
: from T
: group by id
: having min(grade) > 'A' and max(grade) < 'F'
: 假设grade是个单字符的string. A-F.

h*********n
发帖数: 915
9
不能用join完成吗?

【在 s********o 的大作中提到】
: 不许用nested query只是面试问题。实际工作中用不着自己折磨自己,尽管用好了。正
: 确的nested query没有 performance problem.

F**e
发帖数: 593
10
use my previous trick:
SELECT id, SUM(IF(Grade='A' OR Grade='F', 1, 0)) AS sum_A_F
FROM Records
GROUP BY id
HAVING sum_A_F=0;

【在 h*********n 的大作中提到】
: 蛋定老兄SQL很熟啊。
: 再来一个:学生编号,课程,成绩。判断是否有一个学生所有成绩没有F也没有A。每个
: 学生选的课可能不同。
: Records: Id, Course, Grade

s********o
发帖数: 861
11
您错了。张三出不来,因为张三min(grade) = 'A',所以这个group 不满足having min
(grade) > 'A'。

…”

【在 h*********n 的大作中提到】
: 您和楼上的答案没区别,找的还是“所有……至少……”,而不是“至少……所有……”
: 比如:
: 张三 数学 B
: 张三 语文 A
: 李四 数学 B
: 李四 语文 B
: 我要找李四,您的答案张三李四都出来了。

a******o
发帖数: 16625
12
恩,这个不用IF不行。

【在 F**e 的大作中提到】
: use my previous trick:
: SELECT id, SUM(IF(Grade='A' OR Grade='F', 1, 0)) AS sum_A_F
: FROM Records
: GROUP BY id
: HAVING sum_A_F=0;

1 (共1页)
进入SanFrancisco版参与讨论
相关主题
说说国人在工作里互相团结的小事,举几个例子,大家共勉。SQL join的order优化问题 (转载)
突然想, 老中工程师该有自己的politics 团体了!Bing搜索下三烂,太不要脸了
现在order IPhone4,什么时候能拿到?相聚9/30 Synnyvale Baylands Park 三藩版年度BBQ
Have anybody tried "Buy with Redfin"?马不停蹄的忧伤.第一份工作 (上)
一个SQL的问题(Groupby和Having的问题) (转载)转载:真实生活中的湾区猥琐夫妇 by jessicache
请教SQL问题 (转载)真实生活中的湾区猥琐夫妇 (转载)
sql 的大牛来帮我解决一个菜鸟问题其实google+的圈子是个很傻的东西
SQL课程是不是死个中国人大家就要捐钱?
相关话题的讨论汇总
话题: grade话题: sql话题: having话题: customer话题: select