Учитывая следующие данные:MySQL - группы в результате повторяющихся строк
CREATE TABLE Bugs
(`ID` int, `BugDate` DATE, `resolved` int)
;
INSERT INTO Bugs
(`ID`, `BugDate`, `Resolved`)
VALUES
(1, '2014-01-01', 1),
(2, '2014-01-01', 0),
(3, '2014-01-10', 1),
(4, '2014-01-10', 1),
(5, '2014-01-31', 0),
(6, '2014-01-31', 0)
;
Мне нужен выход, как следующее:
weeks old Resolved Unresolved total Rate
--------- -------- ---------- ----- ----
1 1 1 2 50%
2 2 0 2 100%
3 0 2 0 100%
Я смотрю на список вопросов, и я хочу видеть общее число каждой недели и число, разрешенное каждую неделю. Я согласился с тем, что мне, вероятно, нужно будет вычислить столбцы total и rate в front-end, а MySQL - сделать это.
Я попытался следующий, но это не совсем туда попасть:
SELECT
WEEKOFYEAR(NOW())-WEEKOFYEAR(BugDate) as WeeksOld,
COUNT(Resolved) as NumberResolved,
(/* get the total number of issues for this time period */
SELECT COUNT(Resolved)
FROM Bugs
WHERE WEEKOFYEAR(NOW())-WEEKOFYEAR(BugDate) = WeeksOld
) - COUNT(Resolved) as Unresolved
FROM Bugs
GROUP BY WEEKOFYEAR(NOW())-WEEKOFYEAR(BugDate), Resolved
ORDER BY WeeksOld DESC;
Я так близко, но проблема в том, что я получаю двойные колонки в течение нескольких недель, где оба решены и нерешенные вопросы.
Что мне не хватает? Есть лучший способ сделать это?
Вот скрипку: http://sqlfiddle.com/#!2/eeb34/12
То есть mysql kung fu гений. Спасибо. Нет «Total» Column, но я могу рассчитать это. – pbarney