|
Программирование >> Исключение дубликатов строк
Уточнение: Select the sum of (salary) as TotalSalaryAmount from the employee table where the state ts = CA (Выбрать сумму (заработная плата) как TotalSalaryAmount из Сотрудники , где штат = СА) SQL SELECT SUM(Salary) AS TotalSalaryAmount FROM Employees Where EmpState = CA Используемое здесь типизированное выражение было простой ссылкой на столбец. Однако также можно использовать SUM к типизированному выражению, состояш,е-му из числового выражения: How match is our current inventory worth? ( B какую сумму оцениваются запасы наших товаров? ) Преобразование: Select the sum of wholesale price times quantity on hand as TotallnventoryValue from the products table (Выбрать сумму оптовой цены, умноженной на имеюш,ееся количество, как TotallnventoryValue из таблицы Товары ) Уточнение: Select the sum of (wholesale price times * quantity on hand) as TotallnventoryValue from the products table (Выбрать сумму (оптовая цена * имеюш,ееся количество) как TotallnventoryValue из Товары ) SQL SELECT SUM(WholesalePrice * QuantityOnHand) AS TotallnventoryValue FROM Products Как известно, строка должна содержать реальные значения в столбцах WholesalePrice и QuantityOnHand, чтобы их можно было обрабатывать в функции SUM. В данном случае база данных обрабатывает выражение для всех уточняюш,их строк в таблице Products, подсчитывая обшую сумму результатов в функции SUM, а затем отправляя итоговую сумму в набор результата. Вот пример использования SUM для вычисления итоговой суммы для уникального множества числовых значений: Calculate а total of all unique wholesale costs for the products we sell . ( Вычислить обилую сумму всех уникальных оптовых затрат на проданные товары ,) Преобразование: Select the sum of unique wholesale costs as SumOfUniqueWholesaleCosts from the products table (Выбрать сумму уникальных оптовых затрат как SumOfUniqueWholesaleCosts из таблицы Товары ) Уточнение Select the sum of unique (distinct wholesale costs) as SumOfUniqueWholesaleCosts from the products Mte (Выбрать сумму (неповторяющихся оптовых затрат) как SumOfUniqueWholesaleCosts из Товары ) SELECT SUM(DISTINCT WholesaleCost) AS SumOfUniqueWholesaleCosts FROM Products Вычисление среднего зночения a flVG Другой функцией, которую можно использовать с числовыми значениями, является AVG. Она вычисляет арифметические среднее всех He-Null-значений, возвращенных типизированным выражением. AVG можно использовать для ответа на запросы следующего типа: What is the average contract amount for vendor number 10014? ( Какова средняя сумма контракта для поставщика номер 10014? ) Преобразование: Уточнение: Select the average о! contract price as AverageContractPrice from the vendor contracts table where the vendor ID is 10014 (Выбрать среднее значение цены контракта как AverageContractPrice из таблицы Контракты поставщика , где идентификатор поставщика - 10014) Select the average of avg (contract price) as AverageContractPrice from the vendor contracts table where the vendor ID is = 10014 (Выбрать avg (цена контракта) как AverageContractPrice из Контракты поставщика , где идентификатор поставщика = 10014) SELECT AVGCOontractPrice) AS AverageContractPrice FROM VendorContracts WHERE VendorlD = 10014 При работе с уточнением обязательно вычеркните слово average и замените его на avg . Это позволит воздержаться от случайного использования Average в условии SELECT. Average не является допустимым ключевым словом SQL, поэтому оператор SELECT даст сбой при попытке его использования. Функция AVG может использоваться цдя обработки нескольких выражений точно так же, как функция SUM. Помните, что невозможно использовать AVG в типизированном выражении, которое не является числовым. Большинство систем БД выдают ошибку при попытке использования этих функций с символьной строкой или данными типа дата/время. What is the average item total for order 64? ( Какова средняя стоимость товара в заказе 64? ) Преобразование: Select the average of price times quantity ordered as AverageltemTotal from the order details table where order ID is 64 (Выбрать среднюю цену, умноженную на количество, заказанное как AverageltemTotal из таблицы Детали заказа , где идентификатор заказа равняется 64) Уточнение: Select the average of avg (price times * quantity ordered) as AverageltemTotal from the order details tebte where order ID is = 64 (Выбрать avg (цена * заказанное количество) как AverageltemTotal из Детали заказа , где идентификатор заказа = 64) SQL SELECT AVG(Price * QuantityOrdered) AS AverageltemTotal FROM Order.Details WHERE OrderlD = 64 Имейте в виду, что строка должна содержать реальные значения в столбцах Price (Цена) и QuantityOrdered (Заказанное количество), чтобы строки обрабатывались функцией AVG. В противном случае числовое выражение оценивается в Null, а функция AVG игнорирует всю строку целиком. Как и с SUM, если типизированное выражение во всех строках является Null или условия FROM и WHERE вместе возвращают пустой набор результата, то AVG возвращает значение Null. В следующем примере опция DISTINCT используется для усреднения уникального множества числовых значений: Calculate an average of all unique product prices . ( Подсчитать среднее значение цен отдельных товаров .) Преобразование: Select the average of unique prices as UniqueProductPrices from the products table (Выбрать среднее значение уникальных цен как UniqueProductPrices из таблицы Товары ) Уточнение: Select the average of unique avg (distinct prices) as UniqueProductPrices from the products table (Выбрать avg (уникальных цен) как UniqueProductPrices из Товары ) SQL SELECT AVG(DISTINCT Price) AS UniqueProductPrices FROM Products
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |