使用聚合函数group by后面必须要带着所有要查询的列,但是我只想根据group by后面的第一个列进行分组,怎么办? [

前端之家收集整理的这篇文章主要介绍了使用聚合函数group by后面必须要带着所有要查询的列,但是我只想根据group by后面的第一个列进行分组,怎么办? [前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

使用聚合函数group by后面必须要带着所有要查询的列,但是我只想根据group by后面的第一个列进行分组,怎么办?[问题点数:20分]

收藏
@H_301_206@
可以用rank()或dense_rank()函数生成相同的行号,然后groupby行号.
qq_31461149
qq_31461149
本版等级:
a.CategoryID,
c.CategoryName,
a.unitprice,
b.ProductName
( sql keyword" style="white-space:nowrap; list-style:none; font-family:Consolas,
max (unitprice)unitprice
Products
Categories
Categories.CategoryID=Products.CategoryID
Products.categoryID
)a
Productsb
a.CategoryID=b.CategoryID
Categoriesc
a.CategoryID=c.CategoryID;
--这样可以?
--其实你这种想法是正常的,这样可以提高分组操作的时候性能.
#6得分:0回复于: 2016-05-31 19:54:06
引用5楼kingtiy的回复:
sql code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
select sql plain" style="white-space:nowrap; list-style:none; font-family:Consolas,
sql plain" style="white-space:nowrap; list-style:none; font-family:Consolas,
sql spaces" style="color:rgb(199,
b.ProductName
from ( sql keyword" style="white-space:nowrap; list-style:none; font-family:Consolas,
max (unitprice)unitprice
Products
join Categories
on Categories.CategoryID=Products.CategoryID
group by Products.categoryID
)a
Productsb
a.CategoryID=b.CategoryID
Categoriesc
a.CategoryID=c.CategoryID;
--这样可以?
sql comments" style="white-space:nowrap; list-style:none; font-family:Consolas,这样可以提高分组操作的时候性能.

这段代码不行。。还是按ProductName分组了,我还以为有聚合函数的情况下,groupby后面的列只根据第一个分组呢。。
现在还是不知道怎么写。。
关注
tcmakebest
tcmakebest
本版等级:
关注
KanzakiOrange
Ginnnnnnnn
本版等级:
Categoriesb ON Categories.CategoryID=Products.CategoryID AND NOT EXISTS( SELECT * FROM WHERE b.CategoryID=CategoryID AND unitprice>b.unitprice)
对我有用[0] 引用| 举报| 管理
@H_502_879@
关注
u011391182
倔强的四革马
本版等级:
#9得分:0 回复于: 2016-06-02 10:21:46
selecta.CategoryID,b.CategoryName,b.MAX(unitprice),a.ProductName fromProductsa leftjoin(selectCategoryID,MAX(unitprice) fromCategoriesgroupbyCategoryID)b ona.CategoryID=b.CategoryID 试试这个。。。
原文链接:https://www.f2er.com/javaschema/283694.html

猜你在找的设计模式相关文章