【发布时间】:2016-05-03 10:07:09
【问题描述】:
使用 MySql:
查询结果将在webclient用于图表
表:tblActivity
+----------------------------------------------------------+
|id |Activityname |state [state is boolean will have 1 or 0]
+----------------------------------------------------------+
| 1 | activity1 | 1 |
| 1 | activity1 | 0 |
| 2 | activity2 | 1 |
| 2 | activity2 | 0 |
| 3 | activity3 | 0 |
| 1 | activity1 | 1 |
| 2 | activity2 | 0 |
| 4 | activity4 | 1 |
+----------------------------------------------------------+
选择查询
select id, Activityname, state, count(*) as activitycount
from tblActivity
group by id,state
电流输出
+--------------------------------------+
|id |Activityname |state |activitycount|
+--------------------------------------+
|1 |activity1 | 1 | 2 |
|1 |activity1 | 0 | 1 |
|2 |activity2 | 1 | 1 |
|3 |activity2 | 0 | 2 |
|3 |activity3 | 0 | 1 |
+--------------------------------------+
预期输出
+--------------------------------------+
|id |Activityname |state |activitycount|
+--------------------------------------+
|1 |activity1 | 1 | 2 |
|1 |activity1 | 0 | 1 |
|2 |activity2 | 1 | 1 |
|2 |activity2 | 0 | 2 |
|3 |activity3 | 1 | 0 [need] |
|3 |activity3 | 0 | 1 |
|4 |activity3 | 1 | 1 |
|4 |activity3 | 0 | 0 [need] |
+--------------------------------------+
所以,即使特定 activity
的属性 state 没有数据,我也想返回一行我尝试了 IFNULL、COLEASE 等,但找不到最佳解决方案。
【问题讨论】:
-
您希望如何创建不存在的行?
-
@Blip 我不希望从表中获取它,而是希望在结果集中手动添加(如果它不存在)。
-
@Blip 派生表?
-
@Blip 是的,我认为派生表按预期工作