【发布时间】:2021-10-03 18:00:30
【问题描述】:
我在 SQL SERVER 中有下表:
CREATE TABLE cats
(
name VARCHAR(10),
breed VARCHAR(25),
weight decimal(8,2),
color VARCHAR(25),
age int
)
INSERT INTO @cats VALUES('Ashes','Persian',4.5,'Black',5)
INSERT INTO @cats VALUES('Molly','Persian',4.2,'Black',1)
INSERT INTO @cats VALUES('Felix','Persian',5.0,'Tortoiseshell',2)
INSERT INTO @cats VALUES('Smudge','British Shorthair',4.9,'Black',4)
INSERT INTO @cats VALUES('Tigger','British Shorthair',3.8,'Tortoiseshell',2)
INSERT INTO @cats VALUES('Alfie','Siamese',5.5,'Brown',5)
INSERT INTO @cats VALUES('Oscar','Siamese',6.1,'Black',1)
INSERT INTO @cats VALUES('Millie','Maine Coon',5.4,'Tortoiseshell',5)
INSERT INTO @cats VALUES('Misty','Maine Coon',5.7,'Brown',2)
INSERT INTO @cats VALUES('Puss','Maine Coon',5.1,'Tortoiseshell',2)
INSERT INTO @cats VALUES('Smokey','Maine Coon',6.1,'Brown',4)
INSERT INTO @cats VALUES('Charlie','British Shorthair',4.8,'Black',4)
我需要为每个(颜色)选择\查看最古老的猫,以及它的名字。
使用GROUP BY color 非常容易,但问题是当您添加名称时,所有内容都错过了。
我想我应该使用OVER()、Partition BY 或RANK()/DENSE_RANK...我都尝试了它们,但我卡住了。请帮我解决这个问题。
谢谢!
【问题讨论】:
-
“我都试过了,但我卡住了”——用什么?请说明您到目前为止尝试了什么以及有什么问题
标签: sql sql-server database tsql sql-server-2012