Ste*_*eve 21 sql-server select
我试图编写一个SQL查询,从一个表中选择多个列,只在一列上使用distinct运算符.
桌子很简单.列是:
tblFruit_ID, tblFruit_FruitType, tblFruit_FruitName
int NVarChar Text
Run Code Online (Sandbox Code Playgroud)
我试图选择所有tblFruit_FruitType及其对应的tblFruit_ID.
我试过了:
Select Distinct(tblFruit_FruitType), tblFruit_ID FROM tblFruit
Run Code Online (Sandbox Code Playgroud)
- 回报所有结果,而不仅仅是截然不同
Select tblFruit_FruitType, tblFruit_ID FROM tblFruit Group By tblFruit_FruitType
Run Code Online (Sandbox Code Playgroud)
列tblFruit_ID的错误在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中.
Select tblFruit_FruitType, tblFruit_ID FROM tblFruit Group By tblFruit_FruitType, tblFruit_ID
Run Code Online (Sandbox Code Playgroud)
- 回报所有结果,而不仅仅是截然不同
我也检查了这些类似的帖子,无法得到任何工作:(
希望这是一个足够的信息来回答.
感谢您的时间!
编辑(样本数据和期望结果)
tblFruit_ID, tblFruit_FruitType, tblFruit_FruitName
int NVarChar Text
1 Citrus Orange
2 Citrus Lime
3 Citrus Lemon
4 Seed Cherry
5 Seed Banana
Run Code Online (Sandbox Code Playgroud)
结果:
1 Citrus
4 Seed
Run Code Online (Sandbox Code Playgroud)
val*_*lex 30
select * from tblFruit where
tblFruit_ID in (Select max(tblFruit_ID) FROM tblFruit group by tblFruit_FruitType)
Run Code Online (Sandbox Code Playgroud)
Tho*_*mas 23
您必须对未进行分组的列使用聚合函数.在这个例子中,我随意选择了Min函数.您正在组合具有相同FruitType值的行.如果我有两行具有相同的FruitType值但Fruit_Id值不同,例如,系统应该做什么?
Select Min(tblFruit_id) As tblFruit_id
, tblFruit_FruitType
From tblFruit
Group By tblFruit_FruitType
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82403 次 |
| 最近记录: |