У меня есть такая таблица:
Title | Version | Condition | Count
-----------------------------------------------
Title1 | 1.0 | 1 | 10
Title1 | 1.1 | 2 | 5
Title1 | 1.1 | 2 | 10
Title1 | 1.1 | 1 | 10
Title2 | 1.0 | 2 | 10
Title2 | 1.5 | 1 | 5
Title2 | 1.5 | 2 | 5
Title3 | 1.5 | 2 | 10
Title3 | 1.5 | 1 | 10
И я хотел бы суммировать значение «Count» для каждой строки, которая имеет MAX () «Version» и «Condition» = 2. Я бы хотел, чтобы это был результирующий набор данных:
Title | Version | Condition | Count
-----------------------------------------------
Title1 | 1.1 | 2 | 15
Title2 | 1.5 | 2 | 5
Title3 | 1.5 | 2 | 10
Я могу получить список «Заголовок» И МАКС. («Версия») с «Условием» = 2 с:
SELECT DISTINCT Title, MAX(Version) AS MaxVer FROM TABLE
WHERE Condition = 2
GROUP BY Title
Бит, я не уверен, как добавить все "счетчики".
2 ответа
Попробуй это:
SELECT t1.Title, t1.Version, t1.Condition, SUM([Count]) AS Count
FROM mytable AS t1
JOIN (
SELECT Title, MAX(Version) AS max_version
FROM mytable
WHERE Condition = 2
GROUP BY Title
) AS t2 ON t1.Title = t2.Title AND t1.Version = t2.max_version
WHERE t1.Condition = 2
GROUP BY t1.Title, t1.Version, t1.Condition
Для этого нужен только один доступ к таблице:
SELECT Title, Version, Condition, Count
FROM
( -- calculate all SUMs
SELECT Title, Version, Condition, SUM(Count) AS Count,
ROW_NUMBER() OVER (PARTITION BY Title ORDER BY Version DESC) AS rn
FROM TABLE
WHERE Condition = 2
GROUP BY Title, Version, Condition
) AS dt
-- and return only the row with the highest Version
WHERE rn = 1
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.