Database
 sql >> Baza danych >  >> RDS >> Database

Jak pomnożyć dwie kolumny w SQL?

Problem:

chcesz pomnożyć wartości z dwóch kolumn tabeli.

Przykład:

Nasza baza danych zawiera tabelę o nazwie purchase z danymi w następujących kolumnach:id , name , price , quantity i discount_id .

id imię cena ilość discount_id
1 długopis 7 3 1
2 notatnik 5 8 2
3 guma 11 3 1
4 piórnik 24 2 3

Pomnóżmy cenę przez ilość produktów, aby dowiedzieć się, ile zapłaciłeś za każdy przedmiot w swoim zamówieniu.

Rozwiązanie:

SELECT name,
 price*quantity  AS total_price
FROM purchase;

To zapytanie zwraca rekordy z nazwą produktu i jego całkowitą ceną:

nazwa całkowita cena
pióro 21
notatnik 40
guma 33
piórnik 48

Dyskusja:

Czy musisz wybrać nazwę każdego rekordu (w naszym przypadku name ) i oblicz dla niego wynik mnożenia jednej kolumny numerycznej przez drugą (price i quantity )? Wszystko, co musisz zrobić, to użyć operatora mnożenia (*) między dwiema kolumnami mnożenia (price * quantity ) w prostym SELECT zapytanie. Możesz nadać temu wynikowi alias z AS słowo kluczowe; w naszym przykładzie nadaliśmy kolumnie mnożenia alias total_price .

Pamiętaj, że możesz również użyć danych z dwóch kolumn pochodzących z różnych tabel. W naszej bazie danych mamy kolejną tabelę o nazwie discount który ma kolumny o nazwie id i value; ta ostatnia reprezentuje procentową zniżkę na produkt o podanym identyfikatorze.

id wartość
1 10
2 20
3 30

Spójrz na poniższy przykład.

Rozwiązanie:

SELECT p.name, 
 p.price*p.quantity*(100-d.value)/100  AS total_price
FROM purchase p
JOIN discount d ON d.id=p.discount_id;

Oto wynik:

nazwa całkowita cena
pióro 18,90
notatnik 32,00
guma 29,70
piórnik 33,60

Jak widać, dość łatwo jest pomnożyć wartości z różnych połączonych tabel. W powyższym przykładzie pomnożyliśmy cenę każdego produktu przez jego ilość z jednej tabeli (purchase ), a następnie pomnożyć tę całkowitą cenę przez procent rabatu, korzystając z opcji discount tabela.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NoSQL:życie bez schematu

  2. Dell Boomi

  3. Gry MMO i projektowanie baz danych

  4. Czy popełniasz te błędy podczas korzystania z SQL CURSOR?

  5. Praca z danymi JDBC spoza ASCII w Talend