【发布时间】:2018-07-11 19:39:18
【问题描述】:
我正在尝试编写一个 MySQL 查询,我只想从一个表中获取数据。结构如下所示:
+--------------------+------------------+------+-----+----------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+------------------+------+-----+----------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| lastname | varchar(255) | NO | | NULL | |
| slug | text | NO | | NULL | |
| gender | varchar(225) | YES | | NULL | |
| balance | double(50,6) | YES | | NULL | |
| email | varchar(255) | NO | | NULL | |
| password | varchar(255) | NO | | NULL | |
| city | varchar(255) | NO | | NULL | |
| country | varchar(255) | NO | | NULL | |
| statename | varchar(255) | NO | | NULL | |
| countryname | varchar(255) | NO | | NULL | |
| dob | date | YES | | NULL | |
| membership | varchar(255) | YES | | standard | |
| status | varchar(255) | NO | | NULL | |
| marital_status | varchar(255) | NO | | NULL | |
| description | text | NO | | NULL | |
| user_id | int(10) unsigned | YES | MUL | NULL | |
| active | smallint(6) | NO | | 1 | |
| registertype | varchar(255) | NO | | unpaid | |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL |
+--------------------+------------------+------+-----+----------+----------------+
现在我想用下面的列选择这样的数据:
1) created_at (will be a date)
2) total_registrations (will be total count)
3) paid_member (count of total member where registertype=paid on a specific date)
4) unpaid_member (count of total member where registertype=unpaid on a specific date wise)
到目前为止,我通过以下查询成功获得了这样的结果:
select DATE(`created_at`) as created_at, count(*) as total_registrations
from en_customers
where DATE(`created_at`) between date_sub(CURDATE(), interval 7 day) AND CURDATE()
AND registertype="paid"
group by DATE(`created_at`);
从这个查询我得到这个结果:
+------------+-----------+
| created_at | total_reg |
+------------+-----------+
| 2018-07-04 | 7 |
| 2018-07-05 | 7 |
| 2018-07-06 | 5 |
| 2018-07-07 | 4 |
| 2018-07-08 | 8 |
| 2018-07-09 | 13 |
| 2018-07-10 | 15 |
| 2018-07-11 | 14 |
+------------+-----------+
但我无法使用我刚刚显示的列获取记录。
谢谢(提前)!
【问题讨论】:
-
语法显然是 MySQL -- 而不是 SQL Server。我更改了标签。今后,请适当标记。
-
当然,我会确保正确提及标签。