group by的SQL语句
举例1
有一张项目表
CREATE TABLE [ProjectTable] (
[ProjectID] NVARCHAR(16) NOT NULL,
[ProjectName] NVARCHAR(20) NOT NULL ON CONFLICT REPLACE DEFAULT Null,
[DeviceID] INTEGER(16) NOT NULL ON CONFLICT FAIL,
[Description] NVARCHAR(255) NOT NULL ON CONFLICT REPLACE DEFAULT 工程描述);

使用一下的sql语句
select
distinct
a.[ProjectID],
a.[ProjectName]
from
projecttable as a
得出的结果为

其实想要的数据,只是不同的ProjectID所对应的ProjectName
修改sql语句为
select
distinct
a.[ProjectID],
a.[ProjectName]
from
projecttable as a
group by a.[ProjectID]

举例2
https://stackoverflow.com/questions/13998552/why-do-we-need-group-by-with-aggregate-functions
假如现在有一张points detail表,3个字段,user id,company id,points
CREATE TABLE PointsDetail
(
UserId INT NOT NULL ,
CompanyId INT NOT NULL ,
Points INT NOT NULL
);
INSERT INTO dbo.PointsDetail ( UserId ,
CompanyId ,
Points
)
VALUES ( 1 , -- UserId - int
1 , -- CompanyId - int
6 -- Points - int
);
INSERT INTO dbo.PointsDetail ( UserId ,
CompanyId ,
Points
)
VALUES ( 2 , -- UserId - int
1 , -- CompanyId - int
7 -- Points - int
); INSERT INTO dbo.PointsDetail ( UserId ,
CompanyId ,
Points
)
VALUES ( 1 , -- UserId - int
2 , -- CompanyId - int
4 -- Points - int
); INSERT INTO dbo.PointsDetail ( UserId ,
CompanyId ,
Points
)
VALUES ( 2 , -- UserId - int
2 , -- CompanyId - int
3 -- Points - int
);
获取所有数据
SELECT *
FROM PointsDetail;

按照用户group汇总积分,得到每个用户的积分总和
SELECT UserId ,
SUM(Points) AS TotalPointsForUser
FROM PointsDetail
GROUP BY UserId;

按照公司group汇总积分,得到每个公司的积分总和
SELECT CompanyId ,
SUM(Points) AS TotalPointsForCompany
FROM PointsDetail
GROUP BY CompanyId;

举例3 特殊情况
BeneficiaryAccountID 由BeneficiaryId和CompanyId决定,所以下面的2个sql语句执行的points列是一样的
SELECT BeneficiaryAccountID ,
SUM(Points) AS TotalPoints
FROM dbo.tbm_cti_CustomTableItem_BeneficiaryPointDetail
WHERE PointsType = 1
GROUP BY BeneficiaryAccountID
ORDER BY TotalPoints; SELECT BeneficiaryID ,
CompanyID ,
SUM(Points) AS TotalPoints
FROM dbo.tbm_cti_CustomTableItem_BeneficiaryPointDetail
WHERE PointsType = 1
GROUP BY BeneficiaryID ,
CompanyID
ORDER BY TotalPoints;
group by的SQL语句的更多相关文章
- Oracle行转列、列转行的Sql语句总结
多行转字符串 这个比较简单,用||或concat函数可以实现 SQL Code 12 select concat(id,username) str from app_userselect i ...
- Oracle行转列、列转行的Sql语句总结(转)
多行转字符串 这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_userselect id||username str f ...
- Oracle 行转列pivot 、列转行unpivot 的Sql语句总结
这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_user select id||username str from ap ...
- LINQ to SQL语句(6)之Group By/Having
适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in db.Products group ...
- sql语句Group By用法-转载
sql语句Group By用法一则 2007-10-25 12:00 sql语句Group By用法一则 如果我们的需求变成是要算出每一间店 (store_name) 的营业额 (sales),那怎么 ...
- oracle 基础SQL语句 多表查询 子查询 分页查询 合并查询 分组查询 group by having order by
select语句学习 . 创建表 create table user(user varchar2(20), id int); . 查看执行某条命令花费的时间 set timing on: . 查看表的 ...
- [转]SQL语句:Group By总结
1. Group By 语句简介: Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”.它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若 ...
- (转载)SQL语句中Group by语句的详细介绍
转自:http://blog.163.com/yuer_d/blog/static/76761152201010203719835 SQL语句中Group by语句的详细介绍 ...
- SQL语句:Group By总结
1. Group By 语句简介: Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)".它的作用是通过一定的规则将一个数据集划分成若干个 ...
随机推荐
- win下php5.5.12装不上memcache扩展
WAMP这个集成环境里,php目录下有个php.ini,apache/bin下也有一个php.ini,环境使用的是apache下的,改apache
- adb shell 出现 error :
首先,确保 adb 服务有起来 adb kill-server adb start-server其次,确保 adb devices 可以找到设备
- maven学习心得整理
maven的学习心得 已经接触了maven项目有一段时间了,开始时仅仅会使用,在使用中发现了它的强大和方便,于是决心研究一下: 首先,普及一下maven参数: -D:传入属性参数 -P:使用POM中指 ...
- 机器学习中的数学-线性判别分析(LDA), 主成分分析(PCA)
转:http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html 版权声明: 本文由L ...
- [转载]点评阿里云、盛大云等国内IaaS产业
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:刘黎明 原文地址:http://www.chinacloud.org ...
- jquery 父页面 子页面 同级页面 调用
项目中用到 代码 ,先 展示 ,以便以后用到,直接看下就会明白. var li_divs = parent.$("#servicelist")[0].contentWindow. ...
- hdu 1850 Being a Good Boy in Spring Festival 博弈论
求可行的方案数!! 代码如下: #include<stdio.h> ]; int main(){ int n,m; while(scanf("%d",&n)&a ...
- Thread的第一天学习
1.实现线程的方法: 1)extend Thread 2)implements Runnable 2.下面代码执行哪个run方法: new Thread( new Runnable(){ public ...
- 【memcache缓存专题(2)】memcache安装与命令行使用
进新公司一个多月了,一直没有时间来更新,后续还是要保持着每日更新的频率 安装 在windows上安装 略(都玩到缓存的程度了,就没必要在windows上捣弄了) 给个参考: http://blog.c ...
- ios开发--高德地图SDK使用简介
高德LBS开放平台将高德最专业的定位.地图.搜索.导航等能力,以API.SDK等形式向广大开发者免费开放.本章节我们来简单学习一下如何使用它的定位及地图SDK. 一.相关框架及环境配置 地图SDK 对 ...