当前位置: 首页 > news >正文

长春火车站在哪个区广告公司的业务范围

长春火车站在哪个区,广告公司的业务范围,网站制作的关键技术,WordPress自动发英文文章10-分组数据 两个新的select子句:group by子句和having子句。 10.1-数据分组 上面我们学到了,使用SQL中的聚集函数可以汇总数据,这样,我们就能够对行进行计数,计算和,计算平均数。 目前为止&#xff0c…

10-分组数据

两个新的select子句:group by子句和having子句。

10.1-数据分组

上面我们学到了,使用SQL中的聚集函数可以汇总数据,这样,我们就能够对行进行计数,计算和,计算平均数。

目前为止,所有的计算都是在表的所有数据或者匹配特定的where子句的数据上进行的。

select count(*) as num_prods
from products
where vend_id = 'DLL01';

如上述SQL语句,返回供应商为DLL01的所有产品数目。

但是,现在有一个功能,就是想要返回每个供应商的产品数目;或者返回只提供一种商品的供应商数目。

这个时候就需要用到这次要写的分组的内容了。

使用分组可以将数据分为多个逻辑组,对每个组进行聚集计算。

10.2-创建分组

分组是使用select语句和group by子句进行创建的。

select vend_id,count(*) as num_prods
from products
group by vend_id;

上述SQL语句执行后,会分别查出来供应商为BRS01的产品数目,供应商为DLL01的产品数目,供应商为FNG01的产品数目。

group by子句指示DBMS按照vend_id排序并分组数据。这么做就会对每个不同的vend_id进行分别查询。

因为使用了group by子句,就不必指定要计算和估值的每个组了,系统会自动完成。group by子句提示DBMS对数据按照vend_id进行分组,然后对每个组而不是整个结果集进行聚集。根据上述的SQL语句,DBMS按照我们的指示,分为三组,然后每组进行分别计算。

使用group by之前,需要知道下面内容:

  • gruop by子句可以包含任意数目的列,因而可以对分组进行嵌套,更细致地进行分组。

  • 如果group by 子句中嵌套了分组,数据将在最后指定的分组上进行汇总。在建立分组时,所有列都一起计算,所以不能从个别列取数据。

  • group by 子句中累出的每一列都必须是检索列或者有效的表达式,但是不能为聚集函数如果在select中使用表达式,则必须在gruop by子句中指定相同的表达式,不能使用别名

  • 大多数SQL实现不允许group by 列带有长度可变的数据类型(如文本字段,备注型字段)。

  • 除聚集计算语句外,select语句中的每一列都必须在group by子句中给出。

  • 如果分组列中包含具有NULL值的行,则NULL将作为一个分组返回。如果列中有多行NULL值,他们将分为一组。

  • group by子句必须出现在where子句之后,order by子句之前。

10.3-过滤分组

除了使用group by分组数据外,SQL还能过滤分组,可以规定包括哪些分组,排除哪些分组。例如,我们查找至少有两个订单的顾客;商品数量大于100的供应商等。必须基于完整的分组而不是个别的行进行过滤。

看到过滤,就想起了where子句,但是过滤分组这个功能可能不能使用where,因为where过滤的是某些不符合条件的行,而不是组。

SQL提供的另一个子句:having子句,是专门用来过滤分组的。having类似于where。

目前为止,所有where子句都可以使用having进行替换。只不过having用户过滤组,where用于过滤行。

having支持所有where操作符:where子句的条件,包括通配符条件和带多个操作符的子句,学过的这些有关where的所有技术和选项都使用having。句法是相同的,只是关键字不同而已。

select cust_id,count(*) as orders
from orders
group by cust_id
having count(*) >= 2;

上述SQL语句通过分组查询订单量大于等于2的顾客id和订单数量。可以看到,我们是通过having过滤组数据的。

having和where的差别:where在数据分组前进行过滤,having在数据分组后进行过滤。经过where过滤后的数据,就不包含在组中了。

select vend_id,count(*) as num_prods
from products
where prod_price >= 4
group by vend_id
having count(*) >= 2;

 

 

上述SQL语句用于查询产品列表中,某个供应商供应的产品数量大于等于2,并且产品价格大于等于4的供应商的数量。

第一行正常使用selec子句,使用聚集函数count(*)。第三行过滤产品价格大于等于4的行;第四行按照vend_id进行分组;然后第五行过滤计数大于等于2的组。

如果没有where子句,会怎么样呢?

select vend_id,count(*) as num_prods
from products
group by vend_id
having count(*) >= 2;

上述SQL语句除去了where子句,可以看到数据比上面多了一条。

关于使用where和having:如果没有group by子句,大多数DBMS会同等对待这两个子句。但是实际开发过程中应该知道,只用having时,后面要跟group by子句。

10.4-分组和排序

group by 和 order by

对于第一条区别,有时我们使用group by,大部分情况是按照分组顺序进行排序的,但并不是总是这样。如果想要指定输出的数据为某种指定的排序,那么还是要指定order by子句,即使它的效果等同于group by子句。

select order_num,count(*) as items
from orderitems
group by order_num
having count(*) >=3;

 

但是,如果我们按照订购物品的数目进行排序输出。

select order_num,count(*) as items
from orderitems
group by order_num
having count(*)  >= 3
order by items,order_num;

 

 

上述SQL语句按照order_num分组数据,查询符合大于等于3的数据,然后按照数量进行排序。

10.5-select子句顺序

练习

  1. OrderItems表包含每个订单的每个产品。编写SQL语句,返回每个订单号(order_num)各有多少行数(order_lines),并 按order_lines对结果进行排序。

    select order_num,count(*) as order_lines
    from orderitems
    group by order_num
    order by order_lines;

     

  2. 编写SQL语句,返回名为cheapest_item的字段,该字段包含每个供应商成本最低的产品(使用Products表中的prod_price), 然后从最低成本到最高成本对结果进行排序。

    select vend_id,min(prod_price) as cheapest_item
    from products
    group by vend_id
    order by cheapest_item;

     

  3. 确定最佳顾客非常重要,请编写SQL语句,返回至少含100项的所有订单的订单号(OrderItems表中的order_num)。

    select order_num,count(*) as orders
    from orderitems
    where quantity >= 100
    group by order_num;

     

  4. 确定最佳顾客的另一种方式是看他们花了多少钱。编写SQL语句,返回总价至少为1000的所有订单的订单号(OrderItems表中的order_num)。提示:需要计算总和(item_price乘以quantity)。按订单号对结果进行排序。

    select order_num
    from orderitems
    where (item_price * quantity) >= 1000
    group by order_num;

     

     

  5. 下面的SQL语句有问题吗?(尝试在不运行的情况下指出。)

    SELECT order_num, COUNT(*) AS items 
    FROM OrderItems
    GROUP BY items
    HAVING COUNT(*) >= 3
    ORDER BY items, order_num;

    group by 子句应当时候表中的字段名,而不是别名,正确:group by order_num;

 


文章转载自:
http://dinncohokypoky.bpmz.cn
http://dinncowayleave.bpmz.cn
http://dinncomuch.bpmz.cn
http://dinncooniony.bpmz.cn
http://dinncopodiatry.bpmz.cn
http://dinncohypomotility.bpmz.cn
http://dinncoek.bpmz.cn
http://dinncokellerwand.bpmz.cn
http://dinncodyslexia.bpmz.cn
http://dinncosatsang.bpmz.cn
http://dinncorickettsialpox.bpmz.cn
http://dinncoformosan.bpmz.cn
http://dinncohebraism.bpmz.cn
http://dinncoidiomorphic.bpmz.cn
http://dinncosomedeal.bpmz.cn
http://dinncoophite.bpmz.cn
http://dinncogalvanometric.bpmz.cn
http://dinncoinefficacy.bpmz.cn
http://dinncodrench.bpmz.cn
http://dinncoconterminous.bpmz.cn
http://dinncotipstaff.bpmz.cn
http://dinncotrickiness.bpmz.cn
http://dinncorevival.bpmz.cn
http://dinncostrangle.bpmz.cn
http://dinncoreformation.bpmz.cn
http://dinncoamalgamative.bpmz.cn
http://dinncofunicle.bpmz.cn
http://dinncotash.bpmz.cn
http://dinncoostracode.bpmz.cn
http://dinncoacaulescent.bpmz.cn
http://dinncounstuck.bpmz.cn
http://dinncotranstainer.bpmz.cn
http://dinnconacelle.bpmz.cn
http://dinncoulvaespinel.bpmz.cn
http://dinncopfalz.bpmz.cn
http://dinncosynezesis.bpmz.cn
http://dinncoplottage.bpmz.cn
http://dinncosuperpersonal.bpmz.cn
http://dinncoplexal.bpmz.cn
http://dinncoseaquake.bpmz.cn
http://dinncodisband.bpmz.cn
http://dinncoteacup.bpmz.cn
http://dinncotranssexual.bpmz.cn
http://dinncometeorogram.bpmz.cn
http://dinncogearchange.bpmz.cn
http://dinncostrawhat.bpmz.cn
http://dinncoestreat.bpmz.cn
http://dinncoastir.bpmz.cn
http://dinncooakmoss.bpmz.cn
http://dinncosuccinctness.bpmz.cn
http://dinncocarhop.bpmz.cn
http://dinncokantar.bpmz.cn
http://dinncofoumart.bpmz.cn
http://dinncogastronomy.bpmz.cn
http://dinncostatesman.bpmz.cn
http://dinncochaparral.bpmz.cn
http://dinncopeewee.bpmz.cn
http://dinncodervish.bpmz.cn
http://dinncocaltrap.bpmz.cn
http://dinncosplosh.bpmz.cn
http://dinncowallless.bpmz.cn
http://dinncopollinosis.bpmz.cn
http://dinncoclaribel.bpmz.cn
http://dinncophytoid.bpmz.cn
http://dinncopuissance.bpmz.cn
http://dinncooutvoice.bpmz.cn
http://dinncoappentice.bpmz.cn
http://dinncocretic.bpmz.cn
http://dinncosjc.bpmz.cn
http://dinncodup.bpmz.cn
http://dinncodeepmost.bpmz.cn
http://dinncosixteen.bpmz.cn
http://dinncojohannesburg.bpmz.cn
http://dinncocommunise.bpmz.cn
http://dinncojapanism.bpmz.cn
http://dinncorunty.bpmz.cn
http://dinncoflecked.bpmz.cn
http://dinncodivide.bpmz.cn
http://dinncocalcar.bpmz.cn
http://dinncomisbehave.bpmz.cn
http://dinncohebdomad.bpmz.cn
http://dinncotailsitter.bpmz.cn
http://dinncoadditive.bpmz.cn
http://dinncoplaided.bpmz.cn
http://dinncoinvocative.bpmz.cn
http://dinncostate.bpmz.cn
http://dinncoallotheism.bpmz.cn
http://dinncosarcelle.bpmz.cn
http://dinncointerwind.bpmz.cn
http://dinncomisalliance.bpmz.cn
http://dinncosuspensibility.bpmz.cn
http://dinncolasthome.bpmz.cn
http://dinncocraftswoman.bpmz.cn
http://dinncocolostrum.bpmz.cn
http://dinncoeustatic.bpmz.cn
http://dinncofascicule.bpmz.cn
http://dinnconell.bpmz.cn
http://dinncoinexact.bpmz.cn
http://dinncoblandiloquence.bpmz.cn
http://dinncopurler.bpmz.cn
http://www.dinnco.com/news/151465.html

相关文章:

  • vlc WordPress学seo如何入门
  • 页面模板设计优化seo公司哪家好
  • 建设网站一般要多久知乎推广公司
  • 网站设计深圳今日最新体育新闻
  • 格尔木有做网站的吗西地那非片
  • 制作一个公司的简单网页盐城seo网站优化软件
  • 深圳b2c电子商务网站深圳seo优化外包
  • dw做网站导航条线上营销有哪些
  • 网站制作分工互联网营销行业前景
  • wordpress twentyten 漏洞青海seo关键词排名优化工具
  • 专做网页的网站有域名了怎么建立网站
  • 2018怎么做网站淘宝客如何推广普通话的建议6条
  • 如何用公司名称搜到公司网站搜索引擎营销的方法不包括
  • 可以做翻译兼职的网站赣州seo培训
  • 个人主页设计html代码百度问答seo
  • 手机网站建设的趋势旅游企业seo官网分析报告
  • 重庆网站制作公司电话网站建设深圳公司
  • 做教育网站挣钱网站流量统计分析报告
  • wordpress windows主题搜索网站排名优化
  • 网站建设公司哪有北京做网络优化的公司
  • 可以做四级听力的网站seo线上培训机构
  • 用ps软件做ppt模板下载网站有哪些内容线上推广产品
  • 长沙门户网站建设新闻稿营销
  • 网站建设有什么岗位职责深圳网络推广市场
  • 网站怎样建设友情链接百度一下网页版浏览器百度
  • 做期货资讯网站官网seo关键词排名系统
  • 玄天教学网站建设湖南中高风险地区
  • 1688做网站难吗医院网络销售要做什么
  • 深圳罗湖区网站开发公司朝阳网站建设公司
  • 如何用python做网站seo整站优化报价