avatar
SQL语句的两个问题# JobHunting - 待字闺中
s*u
1
没上过Database,自学一下SQL。
1.Wildcard和Regular Expression是同一用途的两种东西?而且SQL用的通配符和通常
电脑上搜索文件的不一样啊。
2.我看cc150有这样的描述:
"we can only select values that are in an aggregate function or in the group
by clause"这个可以理解,因为group了之后,如果你选择没有被group的那些列,那
就会出现多个值冲突的问题。
但首先,如果没有group by,我们当然是可以随意select的,那么也就是这个规则是有
个前提的。当然,也可以理解成不group就是group by *?
其次,我试了下:
SELECT CustomerName,Country
FROM Customers
GROUP BY Country
这样也是可以的,只不过CustomerName自然只能返回其中一项(因为每个country有很
多customer)。也就是这个规则不是硬性规定?
avatar
s*r
2
aggregate function 只能用在group by的field上,比如sum(),只是在select里面无
所谓,但返回值无意义

group

【在 s********u 的大作中提到】
: 没上过Database,自学一下SQL。
: 1.Wildcard和Regular Expression是同一用途的两种东西?而且SQL用的通配符和通常
: 电脑上搜索文件的不一样啊。
: 2.我看cc150有这样的描述:
: "we can only select values that are in an aggregate function or in the group
: by clause"这个可以理解,因为group了之后,如果你选择没有被group的那些列,那
: 就会出现多个值冲突的问题。
: 但首先,如果没有group by,我们当然是可以随意select的,那么也就是这个规则是有
: 个前提的。当然,也可以理解成不group就是group by *?
: 其次,我试了下:

avatar
s*u
3
我可能是没理解你的说法,
但是比如
SELECT StudentID,SUM(Scores)
FROM StudentAndScores
GROUP BY StudentID
就是计算每个student的总分。显然是合乎逻辑的吧。这里sum的对象如果是studentID
,反而没有意义了。
您是想说,只有有group by的话,aggregate才有意义?

【在 s*****r 的大作中提到】
: aggregate function 只能用在group by的field上,比如sum(),只是在select里面无
: 所谓,但返回值无意义
:
: group

avatar
s*r
4
哈哈,你是对的

studentID

【在 s********u 的大作中提到】
: 我可能是没理解你的说法,
: 但是比如
: SELECT StudentID,SUM(Scores)
: FROM StudentAndScores
: GROUP BY StudentID
: 就是计算每个student的总分。显然是合乎逻辑的吧。这里sum的对象如果是studentID
: ,反而没有意义了。
: 您是想说,只有有group by的话,aggregate才有意义?

avatar
s*u
5
还有个问题就是说,
http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_
有个问题啊
比如我有一个表 我希望找到其中某一列的值最大的那一行
必须用order by么
用MAX是不行的,只能保证max值是正确的,但是max对应的那一行没法正确输出。
avatar
s*m
6
自己搞个db慢慢试

【在 s********u 的大作中提到】
: 还有个问题就是说,
: http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_
: 有个问题啊
: 比如我有一个表 我希望找到其中某一列的值最大的那一行
: 必须用order by么
: 用MAX是不行的,只能保证max值是正确的,但是max对应的那一行没法正确输出。

avatar
s*r
8
sub query
where a = (select max(a) .....

【在 s********u 的大作中提到】
: 还有个问题就是说,
: http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_
: 有个问题啊
: 比如我有一个表 我希望找到其中某一列的值最大的那一行
: 必须用order by么
: 用MAX是不行的,只能保证max值是正确的,但是max对应的那一行没法正确输出。

avatar
B*g
9
90%+的数据库版SQL问题可以用partition by解决,找工作版也不例外

【在 s********u 的大作中提到】
: 还有个问题就是说,
: http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_
: 有个问题啊
: 比如我有一个表 我希望找到其中某一列的值最大的那一行
: 必须用order by么
: 用MAX是不行的,只能保证max值是正确的,但是max对应的那一行没法正确输出。

avatar
l*n
10
partition by没听说过,是特定数据库的featu?

【在 B*****g 的大作中提到】
: 90%+的数据库版SQL问题可以用partition by解决,找工作版也不例外
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。