简体   繁体   English

对于给定年份,每月的行数

[英]Count of rows month wise for a given year

I want to select Registration per month. 我想选择每月注册。

<?php
include 'member_entry/sdg_connect.php';

$sql="select member_id from sdg_members where member_joindate BETWEEN  DATE('2015-02-30') AND DATE( '2016-12-31')";

if ($result=mysqli_query($conn,$sql))
  {
      $rowcount=mysqli_num_rows($result);
      echo $rowcount;

      mysqli_free_result($result);
  }

  mysqli_close($conn);
 ?>

You can use an aggregate function count() and group by it by month 您可以按月使用聚合函数count()和group by

$sql="select count(member_id), month(member_joindate) 
from sdg_members
where member_joindate BETWEEN  str_to_date('30/02/2015', '%d/%m/%Y')
    AND    str_to_date('31/12/2016', '%d/%m/%Y')  
group by month(member_joindate) ";

As scaisEdge already mentioned, you have to use group by : 正如scaisEdge已经提到的那样,你必须使用group by

select
  YEAR(member_joindate) AS year, MONTH(member_joindate) AS month, COUNT(DISTINCT member_id) AS joins
from
  sdg_members
where
  member_joindate BETWEEN '2015-02-30' AND '2016-12-31'
group by
  YEAR(member_joindate), MONTH(member_joindate)

This will give you results in the form of 这将以。的形式给你结果

year | month | joins
2015 |     3 |    10
2015 |     4 |     3
2015 |     5 |    11
...

Afterwards you do not need to apply num_rows anymore, you just have to go through the result set 之后您不再需要应用num_rows ,您只需要完成结果集

If datatype of member_joindate column is just DATE than you can use this query: 如果member_joindate列的数据类型只是DATE ,则可以使用此查询:

SELECT COUNT(member_id), MONTH(member_joindate) 
from sdg_members
where member_joindate BETWEEN '2015-02-30' AND '2016-12-31'   
group by MONTH(member_joindate)

If datatype of member_joindate column is just DATETIME than you can use this query: 如果member_joindate列的数据类型只是DATETIME ,那么您可以使用此查询:

SELECT COUNT(member_id), MONTH(member_joindate) 
from sdg_members
where member_joindate BETWEEN '2015-02-30 00:00:00' AND '2016-12-31 23:59:59'   
group by MONTH(member_joindate)

Keep in mind MONTH() will return the month number, you can also use MONTHNAME() function. 请记住MONTH()将返回月份编号,您也可以使用MONTHNAME()函数。

SELECT COUNT(sb_id), MONTHNAME(sb_ondate) 
from sbbleads_members
where sb_ondate BETWEEN '2015-02-30' AND '2016-12-31'   
group by MONTHNAME(sb_ondate);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM