Я должен объединить два поля результатов на основе моего требования. Например, ниже запрос дает результат, как показано. Но мне нужно деловое утверждение, в котором говорится, что и «ветер», и «ветер с» одинаковы, поэтому объединяют его общее количество.SQL-запрос для объединения всего двух полей
SELECT result, COUNT(*) AS total from(
SELECT t.Id AS Id,
CASE
WHEN LTRIM(RTRIM(AC)) = ' ' THEN AG
WHEN LOWER(AC) IS NOT NULL THEN LOWER(AC)
ELSE LOWER(AG)
END AS result,MaxDate,
FROM [DC_20160601] t
INNER JOIN (SELECT Id, MAX(DateTime) AS MaxDate
FROM [DC_20160601]
GROUP BY Id) tm
ON t.Id = tm.Id AND t.DateTime = tm.MaxDate)
GROUP BY result
Текущий результат:
Result Total
Wind 1212
Wind c 345
sqrim 321
sqrim mob 123
Ожидаемый результат:
Result Total
Wind mobile 1557
Sqrim mobile 444
Можно ли предположить, что оба поля в заданных парах имеют одинаковый префикс, а все пары имеют разные префикс? Например, 'Wind' и' Wind c' имеют одинаковый префикс 'Wind'. Тогда 'Wind' и' Sqrim' отличаются друг от друга. –
Проверьте свои данные. Мне кажется, что у вас разные значения для AC, которые вы ожидаете в таблице DC_20160601. Похоже, вам может понадобиться агрегировать базу на «Ветер» и «Sqrim». Если это так, то вам нужно скопировать левую сторону AC или AG до промежутка между ними. –
Вы уверены, что используете MySQL? Помещение '[]' вокруг имен таблиц для SQL-Server. – Barmar