簡體   English   中英

MySQL,由兩個不同的列組成

[英]MySQL, group by two different columns

我的表看起來像:

╔═════╦═════════════════════╦═════════════════════╦═════════════╗
║ id  ║        begin        ║         end         ║ employeesId ║
╠═════╬═════════════════════╬═════════════════════╬═════════════╣
║   4 ║ 2015-11-11 00:00:00 ║ 2015-11-11 09:00:00 ║           8 ║
║  80 ║ 2015-11-11 09:00:00 ║ 2015-11-11 12:00:00 ║           8 ║
║  49 ║ 2015-11-11 00:00:00 ║ 2015-11-11 08:00:00 ║          61 ║
║  32 ║ 2015-11-11 08:00:00 ║ 2015-11-12 06:00:00 ║          61 ║
║  42 ║ 2015-11-12 07:00:00 ║ 2015-11-12 13:00:00 ║          61 ║
║  17 ║ 2015-11-11 00:00:00 ║ 2015-11-11 08:00:00 ║          22 ║
║  42 ║ 2015-11-11 09:00:00 ║ 2015-11-11 12:00:00 ║          22 ║
╚═════╩═════════════════════╩═════════════════════╩═════════════╝

我想合並其中employeesId列相等的行,並且一行的begin時間等於另一行的end時間。 像這樣:

╔═════════════════════╦═════════════════════╦═════════════╗
║        begin        ║         end         ║ employeesId ║
╠═════════════════════╬═════════════════════╬═════════════╣
║ 2015-11-11 00:00:00 ║ 2015-11-11 12:00:00 ║           8 ║
║ 2015-11-11 00:00:00 ║ 2015-11-12 06:00:00 ║          61 ║
║ 2015-11-12 07:00:00 ║ 2015-11-12 13:00:00 ║          61 ║
║ 2015-11-11 00:00:00 ║ 2015-11-11 08:00:00 ║          22 ║
║ 2015-11-11 09:00:00 ║ 2015-11-11 12:00:00 ║          22 ║
╚═════════════════════╩═════════════════════╩═════════════╝

編輯:

我需要合並連續的日期時間,在這個例子中,您可以看到employeeId = 8的結束時間'2015-11-11 12:00:00'替換了第一行的結束時間'2015-11-11 09:00:00'因為第二行的開頭等於第一行的結尾。

嘗試加入

SELECT a.`begin_date`, IF(b.`end_date` IS NOT NULL, b.`end_date`, a.`end_date`), a.`employer_id`
FROM `mytable` a
LEFT JOIN `mytable` b ON a.`employer_id` = b.`employer_id` AND a.`end_date` = b.`begin_date`
LEFT JOIN `mytable` c ON a.`employer_id` = c.`employer_id` AND a.`begin_date` = c.`end_date`
WHERE c.`id` IS NULL

但是你應該重建你的架構。

如果想要更早和更晚的時間MIN(),MAX()可以使用MIN(),MAX()

SELECT MIN(begin),MAX(end),employeesId
    FROM table_name
    GROUP BY employeesId

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM