Arhn - архитектура программирования

SQL - СУММА одной строки, а DISTINCT в другой?

у меня такая таблица

| ProjectCode | ProjectCost |
| -------- | -------------- |
| P001    | 12000.00        |
| P001    | 12000.00        |
| P001    | 12000.00        |
| P002    | 4350.50         |   
| P002    | 4350.50         |
| P003    | 13475.35        |
| P003    | 13475.35        |
| P004    | 2750.00         |

(И так далее)

И я хотел бы получить сумму ProjectCost без учета дублирующейся записи ProjectCode. Я пробовал различать и группировать, но не могу найти правильную комбинацию.

я сблизился с

SELECT SUM(DISTINCT project.projectCost) AS "Total Projects Cost" FROM project

но у меня есть P004 и P006 = 2750,00, поэтому различие не работает

заранее спасибо

14.12.2020

  • Не могли бы вы поделиться ожидаемым результатом? 14.12.2020
  • Общая стоимость проектов = 78 775,73, но я получаю общую стоимость проектов = 123351,49. 14.12.2020
  • Почему в таблице есть дубликаты? Похоже, вам лучше исправить свои данные (или модель данных?), чем пытаться обойти проблемы с помощью какого-то бестолкового запроса. 14.12.2020
  • Это потому, что над проектом работает несколько человек (в таблице проекта ID 1, ID2 работает над P001), я бы вернулся и исправил это, но я нахожусь в самом конце группового проекта, и это потребует повторного -запуск всей базы данных. Просто кажется, что это можно сделать без переделки этой таблицы. 14.12.2020
  • Что вы хотите сделать, если вы найдете разные цены на один и тот же код проекта в базе данных? Суммировать все? Взять наименьшее или наибольшее значение? Среднее? 14.12.2020
  • SELECT SUM(ProjectCost) AS TotalCost FROM (SELECT DISTINCT ProjectCode, ProjectCost FROM project) AS query1 14.12.2020

Ответы:


1

Я думаю, вы хотите:

SELECT SUM(projectCost) AS Total_Projects_Cost
FROM (SELECT DISTINCT projectCode, projectCost FROM project) t
14.12.2020
  • Я использую phpMyAdmin, и он выдает ошибку для второго выбора. Этот тип предложения был ранее проанализирован. 14.12.2020
  • @ScottGibson: запрос верен, это похоже на ошибку в PHPMyAdmin. Возможно, это связано с этим: github.com/phpmyadmin/phpmyadmin/issues/12080 14.12.2020
  • я все еще получаю ответ как 123351,49 вместо 7877,73 14.12.2020
  • @ScottGibson: это удивительно. Можете ли вы воспроизвести проблему в db‹›fiddle? 14.12.2020

  • 2

    Вы также можете использовать это

    SELECT SUM(projectCost) AS Total_Projects_Cost
    FROM (SELECT projectCode, projectCost FROM project group by projectCode, projectCost) t
    
    14.12.2020

    3

    Я думаю, это то, что вы хотите?

    Select sum(projectCost) projectCostSum
    from (
    Select projectCode, projectCost
    from project
    group by projectCode,projectCost) a
    
    14.12.2020
  • При анализе было обнаружено 4 ошибки. Ожидалось выражение. (near (на позиции 52) Неожиданный токен. (near (на позиции 52) Предложение этого типа ранее анализировалось. (near Select на позиции 56) Непредвиденная закрывающая скобка. (near) на позиции 136) 14.12.2020
  • @ Скотт Гибсон: Странно, что вы получаете все эти ошибки. Запрос выглядит правильно (как и другие). Кстати, тот же ответ, что и у MDO. Ответ GMS немного более прямолинеен. (Обычно мы используем GROUP BY только в сочетании с функциями агрегации.) 14.12.2020
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..