Tah*_*qui 2 mysql sql group-by
我有4列:
用户ID,开始日期(D/M/Y),类型和名称
user_id | start_date | type | name
1 | 1-01-2017 | 0 | Jack
1 | 1-01-2017 | 1 | Jack
1 | 2-01-2017 | 0 | Jack
1 | 3-01-2017 | 0 | Jack
1 | 4-01-2017 | 0 | Jack
1 | 5-01-2017 | 0 | Jack
Run Code Online (Sandbox Code Playgroud)
我想通过id,类型和开始日期来检索数据.但条件是,我只想要单个记录,如果日期相同且优先级是type = 1.不要重复日期.我已经尝试过Group by,但它只显示type为0的位置.
user_id | start_date | type | name
1 | 1-01-2017 | 1 | Jack
1 | 2-01-2017 | 0 | Jack
1 | 3-01-2017 | 0 | Jack
1 | 4-01-2017 | 0 | Jack
1 | 5-01-2017 | 0 | Jack
Run Code Online (Sandbox Code Playgroud)
user_id | start_date | type | name
1 | 1-01-2017 | 0 | Jack
1 | 2-01-2017 | 0 | Jack
1 | 3-01-2017 | 0 | Jack
1 | 4-01-2017 | 0 | Jack
1 | 5-01-2017 | 0 | Jack
Run Code Online (Sandbox Code Playgroud)
小智 6
我不明白你究竟在寻找什么,但是以下查询将为您提供您正在寻找的确切结果:
SELECT MAX(user_id) AS user_id,
start_date,
MAX(type) AS type,
MAX(name) as name
FROM data AS d1
GROUP BY start_date;
Run Code Online (Sandbox Code Playgroud)
结果:
| user_id | start_date | type | name |
|---------|----------------------|------|------|
| 1 | 2017-01-01T00:00:00Z | 1 | Jack |
| 1 | 2017-02-01T00:00:00Z | 0 | Jack |
| 1 | 2017-03-01T00:00:00Z | 0 | Jack |
| 1 | 2017-04-01T00:00:00Z | 0 | Jack |
| 1 | 2017-05-01T00:00:00Z | 0 | Jack |
Run Code Online (Sandbox Code Playgroud)