说到SQL语句,大家最開始想到的就是他的查询语句:

select* from tableName;

这是最简单的一种查询方式,不带有不论什么的条件。

当然在我们的实际应用中,这条语句也是非经常常使用到的,当然也是最简单的。在考虑到性能的时候,我们一般不这么

写!详细怎么写,请关注兴许的文章。。。

以下我们着重的看下文章标题所提到的几个子句。

一、Where



例如以下一句:

select * from  dbo.CommodityElectric where Code='e4'

就是寻找表CommodityElectric中, Code='e4'的记录。

这里的where对查询的结果进行了筛选。仅仅有满足where子句中条件的记录才会被查询出来。

二、Group By

GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用 

group by 有一个原则,就是 select 后面的全部列中,没有使用聚合函数的列,必须出如今 group by 后面(重要)

先看表

表内容

假如如今让你找出CommodityName的平均价格,你怎么办?

我们能够这么做:

select avg(CommodityName) from tablename where CommodityName="联想";

Group By通常是和一些聚合函数一起使用,比方上面我们用到的求平均的函数avg,还有求和sum,求个数count,

求最大max,求最小min和max对于上表,

求每种商品的最大的价格:

selectCommodityName,CommodityPrice,CommodityType,max(CommodityType) from tablename group by CommodityName

GroupBy另一个重要的合作对象,他就是having

三.having



我们用Group By进行分组后,怎样对分组后的结果进行一个筛选呢?having来帮您解决这个难题。

通常,你须要通过在HAVING子句中反复聚合函数表达式来引用聚合值,就如你在

SELECT语句中做的那样。例

SELECT A COUNT(B) FROM TABLE GROUP BY A HAVING COUNT(B)>2

1.首先看一个样例:求平均价格在3000以上的商品

假设我们使用这个:

select   CommodityName , avg(CommodityPrice) from  dbo.Commodity where avg(CommodityPrice)>3000  group by CommodityName 

这样是否能达到我们的要求呢?

答案是否定的,由于where子句不能使用聚合函数。为了解决问题,我们来用下我们的杀手锏,他就是Having;

改写例如以下:

select   CommodityName    ,  avg(CommodityPrice)   from  dbo.Commodity   group by CommodityName    having avg(CommodityPrice)>3000;

2.我们继续看Having的另外一个匪夷所思

运算符in也能够用在having子句。

selectfruitname,avg(price) from tablename group by fruitname having fruitname in("orange","apple");

四、Order By

OrderBy是对查询的结果进行一个再排序的过程,一般放在查询语句的最后,能够是单列,也能够实现多列的排序。

分为升序asc和降序desc,默认的为升序。

OrderBy单列的排序比較简单,多列的也不麻烦。

select * fromtablename  group by friutname order by fruitname asc,price desc.

小结:

之所以写这个简短的博客,是在项目中常常要用到这两个的语句,并且刚開始自己理解也是马马虎虎的,不是非常求全。现在在项目中应该彻底的了解了。所以加以全面的了解。Gorderby是通常与聚合的函数进行结合使用,后可跟having进行筛选。Order
by是一个i额排序的过程,简单的降序与升序的排序。

orderby group by的更多相关文章

  1. 【转】【收藏】LINQ学习心得分享--------(二)LINQ语法详解

    原地址:http://blog.csdn.net/xuemoyao/article/details/8053444   通过上一章节的学习,相信大家已经掌握了学习LINQ的前期的准备知识.在这一节里, ...

  2. 1000万条数据导入mysql

    今天需要将一个含有1000万条数据的文本内容插入到数据库表中,最初自然想到的是使用Insertinto '表名'values(),(),()...这种插入方式,但是发现这种方式对1000万条数据量的情 ...

  3. csharp: Linq keyword example

    /// <summary> /// http://www.dotnetperls.com/linq /// </summary> public partial class Li ...

  4. 微服务实战(三):以MySQL为例,从原理上理解那些所谓的数据库军规

    原文链接:微服务化的数据库设计与读写分离(来源:刘超的通俗云计算) 数据库永远是应用最关键的一环,同时越到高并发阶段,数据库往往成为瓶颈,如果数据库表和索引不在一开始就进行良好的设计,则后期数据库横向 ...

  5. LINQ语法详解

    我会通过一些列的实例向大家讲解LINQ的语法. 先创建一个Person类,作为数据实体 public class Person { public string Name { get; set; } p ...

  6. 拿 C# 搞函数式编程 - 3

    前言 今天和某个人聊天聊到了 C# 的 LINQ,发现我认识的 LINQ 似乎和大多数人认识的 LINQ 不太一样,怎么个不一样法呢?其实 LINQ 也可以用来搞函数式编程. 当然,并不是说写几个 l ...

  7. 一条结合where、group、orderby的linq语法

    DataTable dt = (from x in dsResult.Tables[0].AsEnumerable() where DataTrans.CBoolean(x["IsCheck ...

  8. C# LINQ 详解 From Where Select Group Into OrderBy Let Join

    目录 1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. ...

  9. C#中对DataTable进行全连接后group by,orderby

    var result = from temp2 in                             (                                 from u in u ...

随机推荐

  1. C#中配置文件的使用

    1. 向项目添加app.config文件: 右击项目名称,选择“添加”→“添加新建项”,在出现的“添加新项”对话框中,选择“添加应用程序配置文件”:如果项目以前没有配置文件,则默认的文件名称为“app ...

  2. 告诉你一个真实的OpenStack:都谁在用,用来干什么?

    告诉你一个真实的OpenStack:都谁在用,用来干什么? OpenStack基金会近日发布的双年调查报告显示,开源云计算软件OpenStack正在进入主流企业市场,但该项目依然面临较难部署和管理的老 ...

  3. poj 3321 Apple Tree(一维树状数组)

    题目:http://poj.org/problem?id=3321 题意: 苹果树上n个分叉,Q是询问,C是改变状态.... 开始的处理比较难,参考了一下大神的思路,构图成邻接表 并 用DFS编号 白 ...

  4. Struts1和Struts2都有什么区别?

    总的来说,Struts1 的 Action 是单例模式,因此开发者必须保证它是线程安全的或是同步的,因为Struts 1中每个Action仅有一个实例来处理所有的请求.     但是在用Struts  ...

  5. BZOJ1954: Pku3764 The xor-longest Path

    题解: 在树上i到j的异或和可以直接转化为i到根的异或和^j到根的异或和. 所以我们把每个点到根的异或和处理出来放到trie里面,再把每个点放进去跑一遍即可. 代码: #include<cstd ...

  6. C语言数组和指针的理解_在取地址运算上的操作_指针加减操作_a 和&a 的区别

    1.一个实例+理论分析 在了解数组和指针的访问方式前提下,下面再看这个例子: main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); pr ...

  7. Ext入门学习系列(四)面板控件

    第四章 使用面板 上节学习了Ext复杂对话框,更进一步了解了Ext的运行机制.本章重点来了解Ext所有控件的基础——面板控件. 一.Ext的面板是什么? 同样先来看看几个效果: 基本面板,点击右上角小 ...

  8. SpannableStringBuilder 和 SpannableString

    EditText:         通常用于显示文字,但有时候也需要在文字中夹杂一些图片,比如QQ中就可以使用表情图片,又比如需要的文字高亮显示等等,如何在android中也做到这样呢? 记得andr ...

  9. 在windows xp 平台上安装mvc4失败

    使用web 平台安装程序,在windows xp上安装mvc4 出现失败,需要主要是windows powershell 2.0安装失败,需要先卸载power shell 1.0或者 winowrm ...

  10. LeetCode题解——Median of Two Sorted Arrays

    题目: 找两个排序数组A[m]和B[n]的中位数,时间复杂度为O(log(m+n)). 解法: 更泛化的,可以找第k个数,然后返回k=(m+n)/2时的值. 代码: class Solution { ...