avatar
请教SQL问题,谢谢# Database - 数据库
A*y
1
写了段SQL语法,数据库是很多股票月度performance
如果希望挑出每只股票价格最高的纪录的话,比如
select max(price)
from StockData
group by StockID
这样一来,如果我想加入其他字段,比如StockName,系统就会说即不在Group by又没有
aggregate。。。请问有什么解决办法吗?
还有,如果我想按照价格挑选所有字段,有什么办法不用手工输入所有字断名吗?
谢谢大家
avatar
f*g
2
SELECT * FROM STOCKDATA S,
(select stockid, max(price)
from StockData
group by StockID) AS M
WHERE S.stockid = M.stockid



【在 A*******y 的大作中提到】
: 写了段SQL语法,数据库是很多股票月度performance
: 如果希望挑出每只股票价格最高的纪录的话,比如
: select max(price)
: from StockData
: group by StockID
: 这样一来,如果我想加入其他字段,比如StockName,系统就会说即不在Group by又没有
: aggregate。。。请问有什么解决办法吗?
: 还有,如果我想按照价格挑选所有字段,有什么办法不用手工输入所有字断名吗?
: 谢谢大家

avatar
a*t
3
fryking's method should work, probably the correct way also.
but usually I just cheat and use
select max(stockName) as StockName, max(price) as MaxPrice
from StockData
where price is between 10 and 20 --your 2nd question
group by StockID



【在 A*******y 的大作中提到】
: 写了段SQL语法,数据库是很多股票月度performance
: 如果希望挑出每只股票价格最高的纪录的话,比如
: select max(price)
: from StockData
: group by StockID
: 这样一来,如果我想加入其他字段,比如StockName,系统就会说即不在Group by又没有
: aggregate。。。请问有什么解决办法吗?
: 还有,如果我想按照价格挑选所有字段,有什么办法不用手工输入所有字断名吗?
: 谢谢大家

avatar
b*e
4
if different names have different ids, would this work:
select StockName, max(price)
from StockData
group by StockID, StockName
select D1.*
from StockData as D1, (select StockID, max(price)
from StockData group by StockID) as D2
where D1.StockID = D2.StockID
AND D1.price < ...



【在 A*******y 的大作中提到】
: 写了段SQL语法,数据库是很多股票月度performance
: 如果希望挑出每只股票价格最高的纪录的话,比如
: select max(price)
: from StockData
: group by StockID
: 这样一来,如果我想加入其他字段,比如StockName,系统就会说即不在Group by又没有
: aggregate。。。请问有什么解决办法吗?
: 还有,如果我想按照价格挑选所有字段,有什么办法不用手工输入所有字断名吗?
: 谢谢大家

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。