

Email : sausan.ramadhani@student.matanauniversity.ac.id
RPubs : https://rpubs.com/sausanramadhani/
Jurusan : Statistika
Address : ARA Center, Matana University Tower
Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.
Introduction
Seperti yang tertera pada judul, kali ini kita akan menganalisis data menggunakan query yang mana nantinya kita akan membuat satu tabel simple query. Kegunaan query yaitu untuk menarik informasi dari tabel. Sebelum memulai, kita hubungkan database terlebih dahulu dengan R console berikut ini:
# set up the connection and save it into the workspace
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
library(RMySQL)
## Warning: package 'RMySQL' was built under R version 4.1.3
## Loading required package: DBI
## Warning: package 'DBI' was built under R version 4.1.3
library(DBI)
sausan <- dbConnect(RMySQL::MySQL(),
dbname='factory_db',
username='root',
password='',
host='localhost',
port=3306)
knitr::opts_chunk$set(connection = "sausan") #set up the connection
SELECT
SELECT merupakan perintah dasar dari SQL yang berfungsi untuk memilih data dari database dan kemudian menampilkannya dalam hasil.
Di bawah ini ialah syntax saat kita menggunakan Select yang mana hanya memilih beberapa tabel saja :
SELECT CustomerName, Address, City, Country
FROM CUSTOMERS C;
Displaying records 1 - 10
| Alfreds Futterkiste |
Obere Str. 57 |
Turki |
Germany |
| Ana Trujillo Emparedados y helados |
Avda. de la Constitución 2222 |
México D.F. |
Mexico |
| Antonio Moreno TaquerÃa |
Mataderos 2312 |
México D.F. |
Mexico |
| Around the Horn |
120 Hanover Sq. |
London |
UK |
| Berglunds snabbköp |
Berguvsvägen 8 |
Luleå |
Sweden |
| Blauer See Delikatessen |
Forsterstr. 57 |
Mannheim |
Germany |
| Blondel père et fils |
24, place Kléber |
Strasbourg |
France |
| Bólido Comidas preparadas |
C/ Araquil, 67 |
Madrid |
Spain |
| Bon app’ |
12, rue des Bouchers |
Marseille |
France |
| Bottom-Dollar Marketse |
23 Tsawassen Blvd. |
Tsawassen |
Canada |
Di bawah ini ialah syntax saat menggunakan Select yang mana kita mengambil semua tabel customers (menggunakan *) :
SELECT *
FROM CUSTOMERS C;
Displaying records 1 - 10
| 1 |
Alfreds Futterkiste |
Ramadhani |
Obere Str. 57 |
Turki |
12209 |
Germany |
| 2 |
Ana Trujillo Emparedados y helados |
Ana Trujillo |
Avda. de la Constitución 2222 |
México D.F. |
5021 |
Mexico |
| 3 |
Antonio Moreno TaquerÃa |
Antonio Moreno |
Mataderos 2312 |
México D.F. |
5023 |
Mexico |
| 4 |
Around the Horn |
Thomas Hardy |
120 Hanover Sq. |
London |
WA1 1DP |
UK |
| 5 |
Berglunds snabbköp |
Christina Berglund |
Berguvsvägen 8 |
Luleå |
S-958 22 |
Sweden |
| 6 |
Blauer See Delikatessen |
Hanna Moos |
Forsterstr. 57 |
Mannheim |
68306 |
Germany |
| 7 |
Blondel père et fils |
Frédérique Citeaux |
24, place Kléber |
Strasbourg |
67000 |
France |
| 8 |
Bólido Comidas preparadas |
MartÃn Sommer |
C/ Araquil, 67 |
Madrid |
28023 |
Spain |
| 9 |
Bon app’ |
Laurence Lebihans |
12, rue des Bouchers |
Marseille |
13008 |
France |
| 10 |
Bottom-Dollar Marketse |
Elizabeth Lincoln |
23 Tsawassen Blvd. |
Tsawassen |
T2F 8M4 |
Canada |
DISTINCT
DISTINCT berfungsi untuk menampilkan nilai yang berbeda. Biasanya dalam tabel terdapat kolom yang memiliki nilai duplikat, kita bisa menggunakan Distinct untuk menghilangkan nilai duplikat tersebut. Cara menggunakan Distinct yaitu bersamaan dengan Select seperti syntax di bawah ini :
SELECT DISTINCT Country
FROM customers C;
Displaying records 1 - 10
| Germany |
| Mexico |
| UK |
| Sweden |
| France |
| Spain |
| Canada |
| Argentina |
| Switzerland |
| Brazil |
WHERE
WHERE berfungsi untuk menyaring atau memfilter record. Dengan kata lain, Where juga dipakai dalam menentukan kondisi ketika bergabung dengan beberapa tabel atau mengambil data dari satu tabel. Selain bersamaan dengan SELECT, Where juga bisa digunakan bersamaan dengan UPDATE, DELETE, dan perintah dasar SQL lainnya. Berikut ini syntax untuk memilih semua Customer dari negara Mexico :
SELECT *
FROM Customers C
WHERE C.Country='Mexico';
Displaying records 1 - 10
| 2 |
Ana Trujillo Emparedados y helados |
Ana Trujillo |
Avda. de la Constitución 2222 |
México D.F. |
5021 |
Mexico |
| 3 |
Antonio Moreno TaquerÃa |
Antonio Moreno |
Mataderos 2312 |
México D.F. |
5023 |
Mexico |
| 13 |
Centro comercial Moctezuma |
Francisco Chang |
Sierras de Granada 9993 |
México D.F. |
5022 |
Mexico |
| 58 |
Pericles Comidas clásicas |
Guillermo Fernández |
Calle Dr. Jorge Cash 321 |
México D.F. |
5033 |
Mexico |
| 80 |
Tortuga Restaurante |
Miguel Angel Paolino |
Avda. Azteca 123 |
México D.F. |
5033 |
Mexico |
| 2 |
Ana Trujillo Emparedados y helados |
Ana Trujillo |
Avda. de la Constitución 2222 |
México D.F. |
5021 |
Mexico |
| 3 |
Antonio Moreno TaquerÃa |
Antonio Moreno |
Mataderos 2312 |
México D.F. |
5023 |
Mexico |
| 13 |
Centro comercial Moctezuma |
Francisco Chang |
Sierras de Granada 9993 |
México D.F. |
5022 |
Mexico |
| 58 |
Pericles Comidas clásicas |
Guillermo Fernández |
Calle Dr. Jorge Cash 321 |
México D.F. |
5033 |
Mexico |
| 80 |
Tortuga Restaurante |
Miguel Angel Paolino |
Avda. Azteca 123 |
México D.F. |
5033 |
Mexico |
Untuk menggunakan WHERE, kita harus memahami operator-operator yang digunakan dalam WHERE. Operator tersebut yaitu :
1. = (sama dengan)
2. > (lebih besar dari)
3. < (lebih kecil dari)
4. >= (lebih besar sama dengan)
5. <= (lebih kecil sama dengan)
6. <> atau != (tidak sama)
7. IS NULL atau IS NOT NUL (field tanpa nilai)
8. BETWEEN (antara range tertentu)
9. LIKE (mencari pola)
10. IN (menentukan beberapa kemungkinan nilai untuk kolom)
BETWEEN
BETWEEN berfungsi untuk memilih nilai dalam range tertentu. nilai tersebut bisa berupa angka, teks, ataupun tanggal. Between bisa digunakan bersamaan dengan SELECT, INSERT, UPDATE, atau DELETE.
Di bawah ini merupakan syntax Between menggunakan range angka :
SELECT *
FROM Products P
WHERE P.Price
BETWEEN 10 AND 20;
Displaying records 1 - 10
| 1 |
Chais |
1 |
1 |
10 boxes x 20 bags |
18.00 |
| 2 |
Chang |
1 |
1 |
24 - 12 oz bottles |
19.00 |
| 3 |
Aniseed Syrup |
1 |
2 |
12 - 550 ml bottles |
10.00 |
| 15 |
Genen Shouyu |
6 |
2 |
24 - 250 ml bottles |
15.50 |
| 16 |
Pavlova |
7 |
3 |
32 - 500 g boxes |
17.45 |
| 21 |
Sir Rodney’s Scones |
8 |
3 |
24 pkgs. x 4 pieces |
10.00 |
| 25 |
NuNuCa Nuß-Nougat-Creme |
11 |
3 |
20 - 450 g glasses |
14.00 |
| 31 |
Gorgonzola Telino |
14 |
4 |
12 - 100 g pkgs |
12.50 |
| 34 |
Sasquatch Ale |
16 |
1 |
24 - 12 oz bottles |
14.00 |
| 35 |
Steeleye Stout |
16 |
1 |
24 - 12 oz bottles |
18.00 |
Di bawah ini merupakan syntax Between menggunakan range tanggal :
SELECT *
FROM Orders O
WHERE O.OrderDate
BETWEEN '1996-07-01' AND '1996-07-31';
Displaying records 1 - 10
| 10248 |
90 |
5 |
1996-07-04 |
3 |
| 10249 |
81 |
6 |
1996-07-05 |
1 |
| 10250 |
34 |
4 |
1996-07-08 |
2 |
| 10251 |
84 |
3 |
1996-07-08 |
1 |
| 10252 |
76 |
4 |
1996-07-09 |
2 |
| 10253 |
34 |
3 |
1996-07-10 |
2 |
| 10254 |
14 |
5 |
1996-07-11 |
2 |
| 10255 |
68 |
9 |
1996-07-12 |
3 |
| 10256 |
88 |
3 |
1996-07-15 |
2 |
| 10257 |
35 |
4 |
1996-07-16 |
3 |
IN
IN berfungsi untuk menentukan beberapa kemungkinan nilai untuk kolom. Kita bisa gunakan IN bersamaan dengan WHERE jika ingin menggunakan lebih dari 2 kondisi. Berikut ini syntax dengan memilih semua Customer yang berlokasi di “Germany”, “France”, atau “UK” :
SELECT *
FROM Customers C
WHERE C.Country
IN ('Germany', 'France', 'UK');
Displaying records 1 - 10
| 1 |
Alfreds Futterkiste |
Ramadhani |
Obere Str. 57 |
Turki |
12209 |
Germany |
| 4 |
Around the Horn |
Thomas Hardy |
120 Hanover Sq. |
London |
WA1 1DP |
UK |
| 6 |
Blauer See Delikatessen |
Hanna Moos |
Forsterstr. 57 |
Mannheim |
68306 |
Germany |
| 7 |
Blondel père et fils |
Frédérique Citeaux |
24, place Kléber |
Strasbourg |
67000 |
France |
| 9 |
Bon app’ |
Laurence Lebihans |
12, rue des Bouchers |
Marseille |
13008 |
France |
| 11 |
B’s Beverages |
Victoria Ashworth |
Fauntleroy Circus |
London |
EC2 5NT |
UK |
| 16 |
Consolidated Holdings |
Elizabeth Brown |
Berkeley Gardens 12 Brewery |
London |
WX1 6LT |
UK |
| 17 |
Drachenblut Delikatessend |
Sven Ottlieb |
Walserweg 21 |
Aachen |
52066 |
Germany |
| 18 |
Du monde entier |
Janine Labrune |
67, rue des Cinquante Otages |
Nantes |
44000 |
France |
| 19 |
Eastern Connection |
Ann Devon |
35 King George |
London |
WX3 6FW |
UK |
Berikut ini syntax dengan memilih semua Customer yang berasal dari negara yang sama dengan Suppliernya :
SELECT *
FROM Customers C
WHERE C.Country
IN (SELECT S.Country FROM Suppliers S);
Displaying records 1 - 10
| 1 |
Alfreds Futterkiste |
Ramadhani |
Obere Str. 57 |
Turki |
12209 |
Germany |
| 4 |
Around the Horn |
Thomas Hardy |
120 Hanover Sq. |
London |
WA1 1DP |
UK |
| 5 |
Berglunds snabbköp |
Christina Berglund |
Berguvsvägen 8 |
Luleå |
S-958 22 |
Sweden |
| 6 |
Blauer See Delikatessen |
Hanna Moos |
Forsterstr. 57 |
Mannheim |
68306 |
Germany |
| 7 |
Blondel père et fils |
Frédérique Citeaux |
24, place Kléber |
Strasbourg |
67000 |
France |
| 8 |
Bólido Comidas preparadas |
MartÃn Sommer |
C/ Araquil, 67 |
Madrid |
28023 |
Spain |
| 9 |
Bon app’ |
Laurence Lebihans |
12, rue des Bouchers |
Marseille |
13008 |
France |
| 10 |
Bottom-Dollar Marketse |
Elizabeth Lincoln |
23 Tsawassen Blvd. |
Tsawassen |
T2F 8M4 |
Canada |
| 11 |
B’s Beverages |
Victoria Ashworth |
Fauntleroy Circus |
London |
EC2 5NT |
UK |
| 15 |
Comércio Mineiro |
Pedro Afonso |
Av. dos LusÃadas, 23 |
São Paulo |
05432-043 |
Brazil |
LIKE
LIKE berfungsi untuk mencari pola yang spesifik pada kolom. Like digunakan bersamaan dengan WHERE. Biasanya pada like, kita juga menggunakan % (mewakili multi character) atau _ (mewakili single character). Di bawah ini syntax dengan memilih semua Customer yang CustomerName-nya dimulai dengan huruf “a” :
SELECT *
FROM Customers C
WHERE C.CustomerName
LIKE 'a%';
8 records
| 1 |
Alfreds Futterkiste |
Ramadhani |
Obere Str. 57 |
Turki |
12209 |
Germany |
| 2 |
Ana Trujillo Emparedados y helados |
Ana Trujillo |
Avda. de la Constitución 2222 |
México D.F. |
5021 |
Mexico |
| 3 |
Antonio Moreno TaquerÃa |
Antonio Moreno |
Mataderos 2312 |
México D.F. |
5023 |
Mexico |
| 4 |
Around the Horn |
Thomas Hardy |
120 Hanover Sq. |
London |
WA1 1DP |
UK |
| 1 |
Alfreds Futterkiste |
Ramadhani |
Obere Str. 57 |
Turki |
12209 |
Germany |
| 2 |
Ana Trujillo Emparedados y helados |
Ana Trujillo |
Avda. de la Constitución 2222 |
México D.F. |
5021 |
Mexico |
| 3 |
Antonio Moreno TaquerÃa |
Antonio Moreno |
Mataderos 2312 |
México D.F. |
5023 |
Mexico |
| 4 |
Around the Horn |
Thomas Hardy |
120 Hanover Sq. |
London |
WA1 1DP |
UK |
Penerapan % dan _ sebagai berikut :
1. WHERE CustomerName LIKE ‘a%’ (mencari nilai berawalan “a”)
2. WHERE CustomerName LIKE ‘%a’ (mencari nilai berakhiran “a”)
3. WHERE CustomerName LIKE ‘%or%’ (mencari nilai yang memiliki “or” di suatu posisi)
4. WHERE CustomerName LIKE ‘r%’ (mencari nilai yang memiliki “r” di posisi kedua)
5. WHERE CustomerName LIKE ’a%’ (mencari nilai berawalan “a” dan setidaknya 2 karakter panjangnya)
6. WHERE CustomerName LIKE ’a__%’ (mencari nilai berawalan “a” dan setidaknya 3 karakter panjangnya)
7. WHERE ContactName LIKE ‘a%o’
AND, OR and NOT
AND, OR, dan NOT bisa dikombinasikan dengan argumen WHERE.
- opeator AND menampilkan data jika semua kondisi yang dipisahkan AND bernilai TRUE. Jika FALSE maka akan terjadi eror
- operator OR menampilkan data jika salah satu kondisi yang dipisahkan oleh OR bernilai TRUE.
- operator NOT menampilkan hasil yang bernilai FALSE.
Syntax di bawah ini memilih semua field dari “Customers” yang negaranya adalah “Germany” dan kotanya “Berlin atau”München” :
SELECT *
FROM Customers C
WHERE C.Country='Germany' AND (C.City='Berlin' OR C.City='München');
2 records
| 25 |
Frankenversand |
Peter Franken |
Berliner Platz 43 |
München |
80805 |
Germany |
| 25 |
Frankenversand |
Peter Franken |
Berliner Platz 43 |
München |
80805 |
Germany |
syntax NOT bisa diwakilkan dengan <> seperti dibawah ini:
SELECT *
FROM Customers C
WHERE C.Country <> 'Germany' AND C.Country <> 'USA';
Displaying records 1 - 10
| 2 |
Ana Trujillo Emparedados y helados |
Ana Trujillo |
Avda. de la Constitución 2222 |
México D.F. |
5021 |
Mexico |
| 3 |
Antonio Moreno TaquerÃa |
Antonio Moreno |
Mataderos 2312 |
México D.F. |
5023 |
Mexico |
| 4 |
Around the Horn |
Thomas Hardy |
120 Hanover Sq. |
London |
WA1 1DP |
UK |
| 5 |
Berglunds snabbköp |
Christina Berglund |
Berguvsvägen 8 |
Luleå |
S-958 22 |
Sweden |
| 7 |
Blondel père et fils |
Frédérique Citeaux |
24, place Kléber |
Strasbourg |
67000 |
France |
| 8 |
Bólido Comidas preparadas |
MartÃn Sommer |
C/ Araquil, 67 |
Madrid |
28023 |
Spain |
| 9 |
Bon app’ |
Laurence Lebihans |
12, rue des Bouchers |
Marseille |
13008 |
France |
| 10 |
Bottom-Dollar Marketse |
Elizabeth Lincoln |
23 Tsawassen Blvd. |
Tsawassen |
T2F 8M4 |
Canada |
| 11 |
B’s Beverages |
Victoria Ashworth |
Fauntleroy Circus |
London |
EC2 5NT |
UK |
| 12 |
Cactus Comidas para llevar |
Patricio Simpson |
Cerrito 333 |
Buenos Aires |
1010 |
Argentina |
ORDER BY
ORDER BY berfungsi untuk mengurutkan hasil set data dalam urutan besar ke kecil (z-a) atau sebaliknya mengurutkan data dari kecil ke besar (a-z) berdasarkan satu atau lebih kolom.
ORDER BY berisikan DESC atau descending (mengurutkan data dari besar ke kecil) dan ASC atau ascending (mengurutkan data dari kecil ke besar). Jika tidak memakai keduanya, maka secara otomatis akan menggunakan ASC.
Berikut ini syntaxnya :
SELECT *
FROM Customers C
WHERE C.Country='Germany' AND (C.City='Berlin' OR C.City='München')
ORDER BY C.Country, C.City;
2 records
| 25 |
Frankenversand |
Peter Franken |
Berliner Platz 43 |
München |
80805 |
Germany |
| 25 |
Frankenversand |
Peter Franken |
Berliner Platz 43 |
München |
80805 |
Germany |
LIMIT
LIMIT berfungsi untuk menentukan jumlah record yang akan ditampilkan. Selain bersamaan dengan WHERE dan ORDER BY, LIMIT juga bisa dipadukan dengan OFFSET.
top 3 rows:
SELECT * FROM Customers C
WHERE C.Country='Germany' AND (C.City='Berlin' OR C.City='München')
ORDER BY C.Country, C.City
LIMIT 3;
2 records
| 25 |
Frankenversand |
Peter Franken |
Berliner Platz 43 |
München |
80805 |
Germany |
| 25 |
Frankenversand |
Peter Franken |
Berliner Platz 43 |
München |
80805 |
Germany |
top 5 rows setelah top 3 rows :
SELECT CustomerName, Address, City, Country
FROM customers C
ORDER BY C.City, C.Country DESC
LIMIT 3, 5;
5 records
| Rattlesnake Canyon Grocery |
2817 Milton Dr. |
Albuquerque |
USA |
| Old World Delicatessen |
2743 Bering St. |
Anchorage |
USA |
| Old World Delicatessen |
2743 Bering St. |
Anchorage |
USA |
| Vaffeljernet |
Smagsløget 45 |
Ã…rhus |
Denmark |
| Vaffeljernet |
Smagsløget 45 |
Ã…rhus |
Denmark |
MIN dan MAX
MIN dan MAX berfungsi untuk menentukan nilai terkecil dan terbesar dalam bidang berdasakan pengelompokan yang ditentukan.
syntax min untuk menentukan harga produk termurah:
SELECT MIN(P.Price) AS SmallestPrice
FROM Products P;
syntax max untuk menentukan harga produk terbesar:
SELECT MAX(P.Price) AS LargestPrice
FROM Products P;
COUNT, SUM dan AVG
COUNT berfungsi untuk menentukan jumlah baris yang cocok dengan kriteria tertentu. SUM berfungsi untuk menjumlah total kolom numerik. AVG berfungsi untuk menghitung nilai rata-rata kolom numerik.
syntax count :
SELECT COUNT(P.Price)
FROM Products P;
syntax sum :
SELECT SUM(P.Price)
FROM Products P;
syntax avg :
SELECT AVG(P.Price)
FROM Products P;
HAVING
HAVING digunakan sebagai pengganti WHERE dengan fungsi agregat (COUNT, MAX, MIN, SUM, AVG).
syntax having dengan menggunakan fungsi COUNT:
SELECT COUNT(C.CustomerID), C.Country
FROM Customers C
GROUP BY C.Country
HAVING COUNT(C.CustomerID) > 5
ORDER BY COUNT(C.CustomerID) DESC;
Displaying records 1 - 10
| 26 |
USA |
| 22 |
Germany |
| 22 |
France |
| 18 |
Brazil |
| 14 |
UK |
| 10 |
Mexico |
| 10 |
Spain |
| 8 |
Venezuela |
| 6 |
Canada |
| 6 |
Argentina |
CASE
CASE berfungsi untuk melewati kondisi dan mengembalikan nilai saat kondisi pertama terpenuhi.
syntax case bersamaan ELSE:
SELECT OrderID, Quantity,
CASE
WHEN OD.Quantity > 30 THEN 'The quantity is greater than 30'
WHEN OD.Quantity = 30 THEN 'The quantity is 30'
ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails OD;
Displaying records 1 - 10
| 10248 |
12 |
The quantity is under 30 |
| 10248 |
10 |
The quantity is under 30 |
| 10248 |
5 |
The quantity is under 30 |
| 10249 |
9 |
The quantity is under 30 |
| 10249 |
40 |
The quantity is greater than 30 |
| 10250 |
10 |
The quantity is under 30 |
| 10250 |
35 |
The quantity is greater than 30 |
| 10250 |
15 |
The quantity is under 30 |
| 10251 |
6 |
The quantity is under 30 |
| 10251 |
15 |
The quantity is under 30 |
SELECT CustomerName, City, Country
FROM Customers C
ORDER BY
(CASE
WHEN C.City IS NULL THEN C.Country
ELSE C.City
END);
Displaying records 1 - 10
| Drachenblut Delikatessend |
Aachen |
Germany |
| Drachenblut Delikatessend |
Aachen |
Germany |
| Rattlesnake Canyon Grocery |
Albuquerque |
USA |
| Rattlesnake Canyon Grocery |
Albuquerque |
USA |
| Old World Delicatessen |
Anchorage |
USA |
| Old World Delicatessen |
Anchorage |
USA |
| Vaffeljernet |
Ã…rhus |
Denmark |
| Vaffeljernet |
Ã…rhus |
Denmark |
| GalerÃa del gastrónomo |
Barcelona |
Spain |
| GalerÃa del gastrónomo |
Barcelona |
Spain |
Exercise
1. some Suppliers in alphabetical order
SELECT SupplierID, SupplierName, City, Country
FROM Suppliers S
ORDER BY S.SupplierName ASC;
Displaying records 1 - 10
| 18 |
Aux joyeux ecclésiastiques |
Paris |
France |
| 18 |
Aux joyeux ecclésiastiques |
Paris |
France |
| 16 |
Bigfoot Breweries |
Bend |
USA |
| 16 |
Bigfoot Breweries |
Bend |
USA |
| 5 |
Cooperativa de Quesos ‘Las Cabras’ |
Oviedo |
Spain |
| 5 |
Cooperativa de Quesos ‘Las Cabras’ |
Oviedo |
Spain |
| 27 |
Escargots Nouveaux |
Montceau |
France |
| 27 |
Escargots Nouveaux |
Montceau |
France |
| 1 |
Exotic Liquid |
Londona |
UK |
| 1 |
Exotic Liquid |
Londona |
UK |
2. some Suppliers in reverse alphabetical order
SELECT SupplierID, SupplierName, City, Country
FROM Suppliers S
ORDER BY S.SupplierName DESC;
Displaying records 1 - 10
| 22 |
Zaanse Snoepfabriek |
Zaandam |
Netherlands |
| 22 |
Zaanse Snoepfabriek |
Zaandam |
Netherlands |
| 4 |
Tokyo Traders |
Tokyo |
Japan |
| 4 |
Tokyo Traders |
Tokyo |
Japan |
| 17 |
Svensk Sjöföda AB |
Stockholm |
Sweden |
| 17 |
Svensk Sjöföda AB |
Stockholm |
Sweden |
| 8 |
Specialty Biscuits, Ltd. |
Manchester |
UK |
| 8 |
Specialty Biscuits, Ltd. |
Manchester |
UK |
| 10 |
Refrescos Americanas LTDA |
São Paulo |
Brazil |
| 10 |
Refrescos Americanas LTDA |
São Paulo |
Brazil |
3. some Supplier ordered by country then by city
SELECT SupplierID, SupplierName, City, Country
FROM Suppliers S
ORDER BY S.Country, S.City ASC;
Displaying records 1 - 10
| 7 |
Pavlova, Ltd. |
Melbourne |
Australia |
| 7 |
Pavlova, Ltd. |
Melbourne |
Australia |
| 24 |
G’day, Mate |
Sydney |
Australia |
| 24 |
G’day, Mate |
Sydney |
Australia |
| 10 |
Refrescos Americanas LTDA |
São Paulo |
Brazil |
| 10 |
Refrescos Americanas LTDA |
São Paulo |
Brazil |
| 25 |
Ma Maison |
Montréal |
Canada |
| 25 |
Ma Maison |
Montréal |
Canada |
| 29 |
Forêts d’érables |
Ste-Hyacinthe |
Canada |
| 29 |
Forêts d’érables |
Ste-Hyacinthe |
Canada |
4. all Supplier reverse ordered by country the by city
SELECT *
FROM suppliers S
ORDER BY S.Country DESC, S.City DESC;
Displaying records 1 - 10
| 2 |
New Orleans Cajun Delights |
Shelley Burke |
P.O. Box 78934 |
New Orleans |
70117 |
USA |
(100) 555-4822 |
| 2 |
New Orleans Cajun Delights |
Shelley Burke |
P.O. Box 78934 |
New Orleans |
70117 |
USA |
(100) 555-4822 |
| 19 |
New England Seafood Cannery |
Robb Merchant |
Order Processing Dept. 2100 Paul Revere Blvd. |
Boston |
2134 |
USA |
(617) 555-3267 |
| 19 |
New England Seafood Cannery |
Robb Merchant |
Order Processing Dept. 2100 Paul Revere Blvd. |
Boston |
2134 |
USA |
(617) 555-3267 |
| 16 |
Bigfoot Breweries |
Cheryl Saylor |
3400 - 8th Avenue Suite 210 |
Bend |
97101 |
USA |
(503) 555-9931 |
| 16 |
Bigfoot Breweries |
Cheryl Saylor |
3400 - 8th Avenue Suite 210 |
Bend |
97101 |
USA |
(503) 555-9931 |
| 3 |
Grandma Kelly’s Homestead |
Regina Murphy |
707 Oxford Rd. |
Ann Arbor |
48104 |
USA |
(313) 555-5735 |
| 3 |
Grandma Kelly’s Homestead |
Regina Murphy |
707 Oxford Rd. |
Ann Arbor |
48104 |
USA |
(313) 555-5735 |
| 8 |
Specialty Biscuits, Ltd. |
Peter Wilson |
29 King’s Way |
Manchester |
M14 GSD |
UK |
(161) 555-4448 |
| 8 |
Specialty Biscuits, Ltd. |
Peter Wilson |
29 King’s Way |
Manchester |
M14 GSD |
UK |
(161) 555-4448 |
5. all Order sorted by largest total amount
SELECT O.*, OD.Quantity
FROM orders O
RIGHT JOIN orderdetails OD
ON O.OrderID = OD.OrderID
ORDER BY OD.Quantity DESC;
Displaying records 1 - 10
| 10398 |
71 |
2 |
1996-12-30 |
3 |
120 |
| 10398 |
71 |
2 |
1996-12-30 |
3 |
120 |
| 10286 |
63 |
8 |
1996-08-21 |
3 |
100 |
| 10286 |
63 |
8 |
1996-08-21 |
3 |
100 |
| 10440 |
71 |
4 |
1997-02-10 |
2 |
90 |
| 10440 |
71 |
4 |
1997-02-10 |
2 |
90 |
| 10373 |
37 |
4 |
1996-12-05 |
3 |
80 |
| 10442 |
20 |
3 |
1997-02-11 |
2 |
80 |
| 10359 |
72 |
5 |
1996-11-21 |
3 |
80 |
| 10345 |
63 |
2 |
1996-11-04 |
2 |
80 |
6. Top 10 expensive product
SELECT P.*
FROM products P
ORDER BY P.Price DESC
LIMIT 10
Displaying records 1 - 10
| 38 |
Côte de Blaye |
18 |
1 |
12 - 75 cl bottles |
263.50 |
| 38 |
Côte de Blaye |
18 |
1 |
12 - 75 cl bottles |
263.50 |
| 29 |
Thüringer Rostbratwurst |
12 |
6 |
50 bags x 30 sausgs. |
123.79 |
| 29 |
Thüringer Rostbratwurst |
12 |
6 |
50 bags x 30 sausgs. |
123.79 |
| 9 |
Mishi Kobe Niku |
4 |
6 |
18 - 500 g pkgs. |
97.00 |
| 9 |
Mishi Kobe Niku |
4 |
6 |
18 - 500 g pkgs. |
97.00 |
| 20 |
Sir Rodney’s Marmalade |
8 |
3 |
30 gift boxes |
81.00 |
| 20 |
Sir Rodney’s Marmalade |
8 |
3 |
30 gift boxes |
81.00 |
| 18 |
Carnarvon Tigers |
7 |
8 |
16 kg pkg. |
62.50 |
| 18 |
Carnarvon Tigers |
7 |
8 |
16 kg pkg. |
62.50 |
7. the 10th to 15th expensive product
SELECT P.*
FROM products P
ORDER BY P.Price DESC
LIMIT 9, 15;
Displaying records 1 - 10
| 18 |
Carnarvon Tigers |
7 |
8 |
16 kg pkg. |
62.5 |
| 59 |
Raclette Courdavault |
28 |
4 |
5 kg pkg. |
55.0 |
| 59 |
Raclette Courdavault |
28 |
4 |
5 kg pkg. |
55.0 |
| 51 |
Manjimup Dried Apples |
24 |
7 |
50 - 300 g pkgs. |
53.0 |
| 51 |
Manjimup Dried Apples |
24 |
7 |
50 - 300 g pkgs. |
53.0 |
| 62 |
Tarte au sucre |
29 |
3 |
48 pies |
49.3 |
| 62 |
Tarte au sucre |
29 |
3 |
48 pies |
49.3 |
| 43 |
Ipoh Coffee |
20 |
1 |
16 - 500 g tins |
46.0 |
| 43 |
Ipoh Coffee |
20 |
1 |
16 - 500 g tins |
46.0 |
| 28 |
Rössle Sauerkraut |
12 |
7 |
25 - 825 g cans |
45.6 |
8. list country in supplier table (alphabetical order)
SELECT DISTINCT S.Country
FROM suppliers S
ORDER BY S.Country ASC;
Displaying records 1 - 10
| Australia |
| Brazil |
| Canada |
| Denmark |
| Finland |
| France |
| Germany |
| Italy |
| Japan |
| Netherlands |
9. Cheapest and Expensive product
SELECT min(P.Price) Cheapestprice
FROM products P
2 records
| 33 |
Geitost |
15 |
4 |
500 g |
2.5 |
| 33 |
Geitost |
15 |
4 |
500 g |
2.5 |
SELECT max(P.Price) Expensiveprice
FROM products P
2 records
| 38 |
Côte de Blaye |
18 |
1 |
12 - 75 cl bottles |
263.5 |
| 38 |
Côte de Blaye |
18 |
1 |
12 - 75 cl bottles |
263.5 |
10. total Supplier from USA
SELECT COUNT(S.Country) TotalSupplierUSA
FROM suppliers S
WHERE S.Country = "USA"
11. total quantity of orderiterm
SELECT SUM(OD.Quantity) TotalQuantity
FROM orderdetails OD
12. average unitprice in product
SELECT AVG(P.Price) AveragePrice
FROM products P
13. customer named Thomas Hardy
SELECT *
FROM customers C
WHERE C.ContactName = 'Thomas Hardy';
2 records
| 4 |
Around the Horn |
Thomas Hardy |
120 Hanover Sq. |
London |
WA1 1DP |
UK |
| 4 |
Around the Horn |
Thomas Hardy |
120 Hanover Sq. |
London |
WA1 1DP |
UK |
14. list customer from spain or france
SELECT *
FROM customers C
WHERE C.Country = 'Spain' OR C.Country = 'France'
Displaying records 1 - 10
| 7 |
Blondel père et fils |
Frédérique Citeaux |
24, place Kléber |
Strasbourg |
67000 |
France |
| 8 |
Bólido Comidas preparadas |
MartÃn Sommer |
C/ Araquil, 67 |
Madrid |
28023 |
Spain |
| 9 |
Bon app’ |
Laurence Lebihans |
12, rue des Bouchers |
Marseille |
13008 |
France |
| 18 |
Du monde entier |
Janine Labrune |
67, rue des Cinquante Otages |
Nantes |
44000 |
France |
| 22 |
FISSA Fabrica Inter. Salchichas S.A. |
Diego Roel |
C/ Moralzarzal, 86 |
Madrid |
28034 |
Spain |
| 23 |
Folies gourmandes |
Martine Rancé |
184, chaussée de Tournai |
Lille |
59000 |
France |
| 26 |
France restauration |
Carine Schmitt |
54, rue Royale |
Nantes |
44000 |
France |
| 29 |
GalerÃa del gastrónomo |
Eduardo Saavedra |
Rambla de Cataluña, 23 |
Barcelona |
8022 |
Spain |
| 30 |
Godos Cocina TÃpica |
José Pedro Freyre |
C/ Romero, 33 |
Sevilla |
41101 |
Spain |
| 40 |
La corne d’abondance |
Daniel Tonini |
67, avenue de l’Europe |
Versailles |
78000 |
France |
15. list customer not from USA
SELECT *
FROM customers C
WHERE C.Country <> 'USA'
Displaying records 1 - 10
| 1 |
Alfreds Futterkiste |
Ramadhani |
Obere Str. 57 |
Turki |
12209 |
Germany |
| 2 |
Ana Trujillo Emparedados y helados |
Ana Trujillo |
Avda. de la Constitución 2222 |
México D.F. |
5021 |
Mexico |
| 3 |
Antonio Moreno TaquerÃa |
Antonio Moreno |
Mataderos 2312 |
México D.F. |
5023 |
Mexico |
| 4 |
Around the Horn |
Thomas Hardy |
120 Hanover Sq. |
London |
WA1 1DP |
UK |
| 5 |
Berglunds snabbköp |
Christina Berglund |
Berguvsvägen 8 |
Luleå |
S-958 22 |
Sweden |
| 6 |
Blauer See Delikatessen |
Hanna Moos |
Forsterstr. 57 |
Mannheim |
68306 |
Germany |
| 7 |
Blondel père et fils |
Frédérique Citeaux |
24, place Kléber |
Strasbourg |
67000 |
France |
| 8 |
Bólido Comidas preparadas |
MartÃn Sommer |
C/ Araquil, 67 |
Madrid |
28023 |
Spain |
| 9 |
Bon app’ |
Laurence Lebihans |
12, rue des Bouchers |
Marseille |
13008 |
France |
| 10 |
Bottom-Dollar Marketse |
Elizabeth Lincoln |
23 Tsawassen Blvd. |
Tsawassen |
T2F 8M4 |
Canada |
16. list order not between $50 and $15000
SELECT P.ProductID, P.ProductName, P.Price, O.OrderID, OD.OrderID, OD.Quantity
FROM ((products P
LEFT JOIN orderdetails OD
ON P.ProductID = OD.ProductID)
LEFT JOIN orders O
ON OD.OrderID = O.OrderID)
WHERE P.Price
NOT BETWEEN 50 AND 15000
Displaying records 1 - 10
| 11 |
Queso Cabrales |
21.0 |
10248 |
10248 |
12 |
| 11 |
Queso Cabrales |
21.0 |
10248 |
10248 |
12 |
| 42 |
Singaporean Hokkien Fried Mee |
14.0 |
10248 |
10248 |
10 |
| 42 |
Singaporean Hokkien Fried Mee |
14.0 |
10248 |
10248 |
10 |
| 72 |
Mozzarella di Giovanni |
34.8 |
10248 |
10248 |
5 |
| 72 |
Mozzarella di Giovanni |
34.8 |
10248 |
10248 |
5 |
| 11 |
Queso Cabrales |
21.0 |
10248 |
10248 |
12 |
| 11 |
Queso Cabrales |
21.0 |
10248 |
10248 |
12 |
| 42 |
Singaporean Hokkien Fried Mee |
14.0 |
10248 |
10248 |
10 |
| 42 |
Singaporean Hokkien Fried Mee |
14.0 |
10248 |
10248 |
10 |
17. list product between $10 and $20
SELECT *
FROM products P
WHERE P.Price
BETWEEN 10 AND 20;
Displaying records 1 - 10
| 1 |
Chais |
1 |
1 |
10 boxes x 20 bags |
18.00 |
| 2 |
Chang |
1 |
1 |
24 - 12 oz bottles |
19.00 |
| 3 |
Aniseed Syrup |
1 |
2 |
12 - 550 ml bottles |
10.00 |
| 15 |
Genen Shouyu |
6 |
2 |
24 - 250 ml bottles |
15.50 |
| 16 |
Pavlova |
7 |
3 |
32 - 500 g boxes |
17.45 |
| 21 |
Sir Rodney’s Scones |
8 |
3 |
24 pkgs. x 4 pieces |
10.00 |
| 25 |
NuNuCa Nuß-Nougat-Creme |
11 |
3 |
20 - 450 g glasses |
14.00 |
| 31 |
Gorgonzola Telino |
14 |
4 |
12 - 100 g pkgs |
12.50 |
| 34 |
Sasquatch Ale |
16 |
1 |
24 - 12 oz bottles |
14.00 |
| 35 |
Steeleye Stout |
16 |
1 |
24 - 12 oz bottles |
18.00 |
18. list product not between $10 and $100 (sorted)
SELECT *
FROM products P
WHERE P.Price
NOT BETWEEN 10 AND 100
ORDER BY P.Price DESC;
Displaying records 1 - 10
| 38 |
Côte de Blaye |
18 |
1 |
12 - 75 cl bottles |
263.50 |
| 38 |
Côte de Blaye |
18 |
1 |
12 - 75 cl bottles |
263.50 |
| 29 |
Thüringer Rostbratwurst |
12 |
6 |
50 bags x 30 sausgs. |
123.79 |
| 29 |
Thüringer Rostbratwurst |
12 |
6 |
50 bags x 30 sausgs. |
123.79 |
| 41 |
Jack’s New England Clam Chowder |
19 |
8 |
12 - 12 oz cans |
9.65 |
| 41 |
Jack’s New England Clam Chowder |
19 |
8 |
12 - 12 oz cans |
9.65 |
| 45 |
Røgede sild |
21 |
8 |
1k pkg. |
9.50 |
| 47 |
Zaanse koeken |
22 |
3 |
10 - 4 oz boxes |
9.50 |
| 45 |
Røgede sild |
21 |
8 |
1k pkg. |
9.50 |
| 47 |
Zaanse koeken |
22 |
3 |
10 - 4 oz boxes |
9.50 |
19. list order and amount sold between 1996 Jan 01 and 1996 Des 31
SELECT C.CustomerID, C.CustomerName, O.OrderID, O.CustomerID, O.OrderDate, OD.OrderID, SUM(OD.Quantity) AmountSold
FROM customers C
LEFT JOIN orders O
ON C.CustomerID = O.CustomerID
LEFT JOIN orderdetails OD
ON O.OrderID = OD.OrderID
GROUP BY O.OrderID
HAVING O.OrderDate
BETWEEN '1996-01-01' AND '1996-12-31'
Displaying records 1 - 10
| 90 |
Wilman Kala |
10248 |
90 |
1996-07-04 |
10248 |
108 |
| 81 |
Tradição Hipermercados |
10249 |
81 |
1996-07-05 |
10249 |
196 |
| 34 |
Hanari Carnes |
10250 |
34 |
1996-07-08 |
10250 |
240 |
| 84 |
Victuailles en stock |
10251 |
84 |
1996-07-08 |
10251 |
164 |
| 76 |
Suprêmes délices |
10252 |
76 |
1996-07-09 |
10252 |
420 |
| 34 |
Hanari Carnes |
10253 |
34 |
1996-07-10 |
10253 |
408 |
| 14 |
Chop-suey Chinese |
10254 |
14 |
1996-07-11 |
10254 |
228 |
| 68 |
Richter Supermarkt |
10255 |
68 |
1996-07-12 |
10255 |
440 |
| 88 |
Wellington Importadora |
10256 |
88 |
1996-07-15 |
10256 |
108 |
| 35 |
HILARIÓN-Abastos |
10257 |
35 |
1996-07-16 |
10257 |
184 |
20. list supplier from USA, UK or Japan
SELECT *
FROM suppliers S
WHERE S.Country
IN ('USA', 'UK', 'JAPAN')
Displaying records 1 - 10
| 1 |
Exotic Liquid |
Charlotte Cooper |
49 Gilbert St. |
Londona |
EC1 4SD |
UK |
(171) 555-2222 |
| 2 |
New Orleans Cajun Delights |
Shelley Burke |
P.O. Box 78934 |
New Orleans |
70117 |
USA |
(100) 555-4822 |
| 3 |
Grandma Kelly’s Homestead |
Regina Murphy |
707 Oxford Rd. |
Ann Arbor |
48104 |
USA |
(313) 555-5735 |
| 4 |
Tokyo Traders |
Yoshi Nagase |
9-8 Sekimai Musashino-shi |
Tokyo |
100 |
Japan |
(03) 3555-5011 |
| 6 |
Mayumi’s |
Mayumi Ohno |
92 Setsuko Chuo-ku |
Osaka |
545 |
Japan |
(06) 431-7877 |
| 8 |
Specialty Biscuits, Ltd. |
Peter Wilson |
29 King’s Way |
Manchester |
M14 GSD |
UK |
(161) 555-4448 |
| 16 |
Bigfoot Breweries |
Cheryl Saylor |
3400 - 8th Avenue Suite 210 |
Bend |
97101 |
USA |
(503) 555-9931 |
| 19 |
New England Seafood Cannery |
Robb Merchant |
Order Processing Dept. 2100 Paul Revere Blvd. |
Boston |
2134 |
USA |
(617) 555-3267 |
| 1 |
Exotic Liquid |
Charlotte Cooper |
49 Gilbert St. |
Londona |
EC1 4SD |
UK |
(171) 555-2222 |
| 2 |
New Orleans Cajun Delights |
Shelley Burke |
P.O. Box 78934 |
New Orleans |
70117 |
USA |
(100) 555-4822 |
21. list product not exactly $10, $20, $30, $40, $50
SELECT *
FROM products P
WHERE P.Price
NOT IN (10, 20, 30, 40, 50)
Displaying records 1 - 10
| 1 |
Chais |
1 |
1 |
10 boxes x 20 bags |
18.00 |
| 2 |
Chang |
1 |
1 |
24 - 12 oz bottles |
19.00 |
| 4 |
Chef Anton’s Cajun Seasoning |
2 |
2 |
48 - 6 oz jars |
22.00 |
| 5 |
Chef Anton’s Gumbo Mix |
2 |
2 |
36 boxes |
21.35 |
| 6 |
Grandma’s Boysenberry Spread |
3 |
2 |
12 - 8 oz jars |
25.00 |
| 9 |
Mishi Kobe Niku |
4 |
6 |
18 - 500 g pkgs. |
97.00 |
| 10 |
Ikura |
4 |
8 |
12 - 200 ml jars |
31.00 |
| 11 |
Queso Cabrales |
5 |
4 |
1 kg pkg. |
21.00 |
| 12 |
Queso Manchego La Pastora |
5 |
4 |
10 - 500 g pkgs. |
38.00 |
| 13 |
Konbu |
6 |
8 |
2 kg box |
6.00 |
22. list customer which is from the same country as supplier
SELECT C.CustomerName, C.Country, S.SupplierName, S.Country
FROM customers C
JOIN suppliers S
ON C.Country = S.Country
Displaying records 1 - 10
| Alfreds Futterkiste |
Germany |
Heli Süßwaren GmbH & Co. KG |
Germany |
| Alfreds Futterkiste |
Germany |
Plutzer Lebensmittelgroßmärkte AG |
Germany |
| Alfreds Futterkiste |
Germany |
Nord-Ost-Fisch Handelsgesellschaft mbH |
Germany |
| Alfreds Futterkiste |
Germany |
Heli Süßwaren GmbH & Co. KG |
Germany |
| Alfreds Futterkiste |
Germany |
Plutzer Lebensmittelgroßmärkte AG |
Germany |
| Alfreds Futterkiste |
Germany |
Nord-Ost-Fisch Handelsgesellschaft mbH |
Germany |
| Around the Horn |
UK |
Exotic Liquid |
UK |
| Around the Horn |
UK |
Specialty Biscuits, Ltd. |
UK |
| Around the Horn |
UK |
Exotic Liquid |
UK |
| Around the Horn |
UK |
Specialty Biscuits, Ltd. |
UK |
23. list product start with ‘Cha’ or ‘Chan’ and have one more character
SELECT *
FROM products P
WHERE P.ProductName LIKE 'Cha_' OR P.ProductName LIKE 'Chan_';
2 records
| 2 |
Chang |
1 |
1 |
24 - 12 oz bottles |
19 |
| 2 |
Chang |
1 |
1 |
24 - 12 oz bottles |
19 |
24. list supplier have fax number
SELECT *
FROM suppliers S
WHERE S.Phone IS NOT NULL
Displaying records 1 - 10
| 1 |
Exotic Liquid |
Charlotte Cooper |
49 Gilbert St. |
Londona |
EC1 4SD |
UK |
(171) 555-2222 |
| 2 |
New Orleans Cajun Delights |
Shelley Burke |
P.O. Box 78934 |
New Orleans |
70117 |
USA |
(100) 555-4822 |
| 3 |
Grandma Kelly’s Homestead |
Regina Murphy |
707 Oxford Rd. |
Ann Arbor |
48104 |
USA |
(313) 555-5735 |
| 4 |
Tokyo Traders |
Yoshi Nagase |
9-8 Sekimai Musashino-shi |
Tokyo |
100 |
Japan |
(03) 3555-5011 |
| 5 |
Cooperativa de Quesos ‘Las Cabras’ |
Antonio del Valle Saavedra |
Calle del Rosal 4 |
Oviedo |
33007 |
Spain |
(98) 598 76 54 |
| 6 |
Mayumi’s |
Mayumi Ohno |
92 Setsuko Chuo-ku |
Osaka |
545 |
Japan |
(06) 431-7877 |
| 7 |
Pavlova, Ltd. |
Ian Devling |
74 Rose St. Moonie Ponds |
Melbourne |
3058 |
Australia |
(03) 444-2343 |
| 8 |
Specialty Biscuits, Ltd. |
Peter Wilson |
29 King’s Way |
Manchester |
M14 GSD |
UK |
(161) 555-4448 |
| 9 |
PB Knäckebröd AB |
Lars Peterson |
Kaloadagatan 13 |
Göteborg |
S-345 67 |
Sweden |
031-987 65 43 |
| 10 |
Refrescos Americanas LTDA |
Carlos Diaz |
Av. das Americanas 12.890 |
São Paulo |
5442 |
Brazil |
(11) 555 4640 |
25. list customer with average order between $1000 and $1200
SELECT CustomerName, AVG(OrderAmount) AvgOrder
FROM
(
SELECT C.CustomerName, SUM(OD.Quantity * P.Price) OrderAmount
FROM customers C
JOIN orders O
ON C.CustomerID = O.CustomerID
JOIN orderdetails OD
ON O.OrderID = OD.OrderID
JOIN products P
ON OD.ProductID = P.ProductID
GROUP BY OD.OrderID
) COPAVG
GROUP BY COPAVG.CustomerName
HAVING AvgOrder
BETWEEN 1000 AND 1200
ORDER BY AvgOrder
1 records
| Centro comercial Moctezuma |
1008 |
26. list total customer in each country
SELECT C.Country, COUNT(C.Country) TotalCustomer
FROM customers C
GROUP BY C.Country
Displaying records 1 - 10
| Argentina |
6 |
| Austria |
4 |
| Belgium |
4 |
| Brazil |
18 |
| Canada |
6 |
| Denmark |
4 |
| Finland |
4 |
| France |
22 |
| Germany |
22 |
| Ireland |
2 |