sql聚合函数中count(*) 和count(1),count(2)结果相同,为什么

来源:互联网 发布:北京大学人口所 知乎 编辑:程序博客网 时间:2024/06/06 01:57

count(1),其实就是计算一共有多少符合条件的行。
1并不是表示第一个字段,而是表示一个固定值。
其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1.。
同理,count(2),也可以,得到的值完全一样,count('x'),count('y')都是可以的。一样的理解方式。在你这个语句理都可以使用,返回的值完全是一样的。就是计数。

count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。

 

 

limit 起始位置(0开始算),显示条数;
上例:SELECT * FROM `test` limit 2,4 他的起始位置写的是2,由于是从0开始算起的所以自然真正的起始位置是3,后面的4代表显示4条记录.

select * from table LIMIT 5; #返回前5行

 

/**

     * 查询本周上架商品数目

     *

     * @return

         */

publicabstract LongcountLatestShelveProducts();

--------------------

--countLatestShelveProducts

selectcount(1)from srm_goods g

 whereshelves_flag ='y'

  and date_sub(curdate(), interval 7 day) <=date(this_shelves_date)

 

DATE_SUB() 函数从日期减去指定的时间间隔。

DATEDIFF() 函数返回两个日期之间的天数。

SELECT DATEDIFF(day,'2008-12-30','2008-12-29') ASDiffDate

得到-1

 

·  --本周记录   

·  SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=0  

 

 

 

数据库分组group 函数  W3S网站例子

合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

0 0
原创粉丝点击