sql >> Database >  >> RDS >> Database

Hoe twee kolommen in SQL te vermenigvuldigen?

Probleem:

waarden uit twee kolommen van een tabel wilt vermenigvuldigen.

Voorbeeld:

Onze database heeft een tabel met de naam purchase met gegevens in de volgende kolommen:id , name , price , quantity , en discount_id .

id naam prijs hoeveelheid discount_id
1 pen 7 3 1
2 notebook 5 8 2
3 rubber 11 3 1
4 etui 24 2 3

Laten we de prijs vermenigvuldigen met het aantal producten om erachter te komen hoeveel u voor elk artikel in uw bestelling heeft betaald.

Oplossing:

SELECT name,
 price*quantity  AS total_price
FROM purchase;

Deze zoekopdracht retourneert records met de naam van het product en de totale prijs:

naam total_price
pen 21
notebook 40
rubber 33
etui 48

Discussie:

Moet u de naam van elk record selecteren (in ons geval name ) en bereken daarvoor het resultaat van het vermenigvuldigen van een numerieke kolom met een andere (price en quantity )? Het enige dat u hoeft te doen, is de vermenigvuldigingsoperator (*) tussen de twee vermenigvuldigtalen (price) gebruiken * quantity ) in een simpele SELECT vraag. Je kunt dit resultaat een alias geven met de AS trefwoord; in ons voorbeeld hebben we de vermenigvuldigingskolom een ​​alias gegeven van total_price .

Merk op dat u ook gegevens uit twee kolommen uit verschillende tabellen kunt gebruiken. We hebben nog een tabel in onze database met de naam discount met kolommen met de naam id en value; de laatste vertegenwoordigt het kortingspercentage op het artikel met de opgegeven ID.

id waarde
1 10
2 20
3 30

Bekijk het onderstaande voorbeeld.

Oplossing:

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;

Dit is het resultaat:

naam total_price
pen 18.90
notebook 32,00
rubber 29.70
etui 33,60

Zoals u kunt zien, is het vrij eenvoudig om waarden uit verschillende samengevoegde tabellen te vermenigvuldigen. In ons voorbeeld hierboven hebben we de prijs van elk product vermenigvuldigd met de hoeveelheid uit één tabel (purchase ) en vervolgens deze totale prijs vermenigvuldigd met het kortingspercentage met behulp van de discount tafel.


  1. Kolom splitsen in meerdere rijen in Postgres

  2. SQL niet gelijk aan (!=) Operator voor beginners

  3. Een CLOB-kolom opvragen in Oracle

  4. Hoe kan ik een primaire sleutel maken als AUTOINCREMENT