我正在try 创建一个包含代码N09的表,其中一个学生被分配了一组包含N09的代码,并且"Status Complete"是YES.我想使用GROUP_CONCAT查看每个集合是否包含N09.我看到了与此类似的问题,但不幸的是,它没有达到我对表2的目标,因为它导致了一个问题.我遇到的这个问题是,计数时一直显示1而不是2、3.它还一直显示N09,而不是显示N09及其GROUP_CONCAT函数集合中的其他代码.在SQLite中,是否有代码可以实现表2的目标?如果我的问题不清楚,请随意 comments ,因为我是新来的.
表2的目标:
Student ID | Status Complete | Status Date | Status Time | Code | Count | Group_Concat(Code) |
---|---|---|---|---|---|---|
1 | yes | 03/03/2021 | 00:00:00 | N09 | 1 | N09 |
2 | yes | 03/04/2021 | 10:03:10 | N09 | 2 | N09, M33 |
3 | yes | 03/04/2021 | 01:00:10 | N09 | 3 | N09, Y03, B55 |
问题:
Student ID | Status Complete | Status Date | Status Time | Code | Count | Group_Concat(Code) |
---|---|---|---|---|---|---|
1 | yes | 03/03/2021 | 00:00:00 | N09 | 1 | N09 |
2 | yes | 03/04/2021 | 10:03:10 | N09 | 1 | N09 |
3 | yes | 03/04/2021 | 01:00:10 | N09 | 1 | N09 |
样本数据:
Student ID | Status Complete | Status Date | Status Time | Code |
---|---|---|---|---|
1 | yes | 03/03/2021 | 00:00:00 | N09 |
2 | yes | 03/04/2021 | 10:03:10 | N09 |
2 | yes | 03/04/2021 | 10:03:10 | M33 |
3 | yes | 03/04/2021 | 01:00:10 | N09 |
3 | yes | 03/04/2021 | 01:00:10 | Y03 |
3 | yes | 03/04/2021 | 01:00:10 | B55 |
代码:
CREATE TABLE table2 AS
select Student_ID
,Status_Complete
,Status_Date
,Status_TIME
,Code
,count(Code) /*over (partition by Student_ID,Code)*/ as 'Count'
,GROUP_CONCAT(Code)
from table1
where Code in ('N09') AND Status_Complete = 'yes'
group by Student_ID, Status_Date, Status_TIME, 'Count'
HAVING 'Count'> 0
ORDER BY Student_ID;