Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 93 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@ Assume that any `_id` columns are incremental, meaning that higher ids always oc

Get the `id` values of the first 5 clients from `district_id` with a value equals to 1.

SELECT client_id
FROM client
WHERE district_id==1
LIMIT 5

Expected result:

```shell
Expand All @@ -42,6 +47,12 @@ Expected result:

In the `client` table, get an `id` value of the last client where the `district_id` equals to 72.

SELECT client_id
FROM client
WHERE district_id==72
ORDER BY client_id DESC
LIMIT 1

Expected result:

```shell
Expand All @@ -52,6 +63,11 @@ Expected result:

Get the 3 lowest amounts in the `loan` table.

SELECT amount
FROM loan
ORDER BY amount
LIMIT 3

Expected result:

```shell
Expand All @@ -64,6 +80,10 @@ Expected result:

What are the possible values for `status`, ordered alphabetically in ascending order in the `loan` table?

SELECT DISTINCT(status)
FROM loan
ORDER BY status

Expected result:

```shell
Expand All @@ -77,6 +97,10 @@ D

What is the `loan_id` of the highest payment received in the `loan` table?

SELECT loan_id
FROM loan
WHERE amount = (SELECT MAX(amount) FROM loan)

Expected result:

```shell
Expand All @@ -87,6 +111,11 @@ Expected result:

What is the loan `amount` of the lowest 5 `account_id`s in the `loan` table? Show the `account_id` and the corresponding `amount`

SELECT account_id, amount
FROM loan
ORDER BY loan_id ASC
LIMIT 5

Expected result:

```shell
Expand All @@ -102,6 +131,12 @@ Expected result:

What are the `account_id`s with the lowest loan `amount` that have a loan `duration` of 60 in the `loan` table?

SELECT account_id
FROM loan
WHERE duration=60
ORDER BY amount ASC
LIMIT 5

Expected result:

```shell
Expand All @@ -118,6 +153,12 @@ What are the unique values of `k_symbol` in the `order` table?

Note: There shouldn't be a table name `order`, since `order` is reserved from the `ORDER BY` clause. You have to use backticks to escape the `order` table name.

SELECT DISTINCT (k_symbol)
FROM `order`
WHERE k_symbol IS NOT NULL
AND TRIM(k_symbol) != ''
ORDER BY k_symbol

Expected result:

```shell
Expand All @@ -131,6 +172,10 @@ UVER

In the `order` table, what are the `order_id`s of the client with the `account_id` 34?

SELECT order_id
FROM `order`
WHERE account_id=34

Expected result:

```shell
Expand All @@ -143,6 +188,10 @@ Expected result:

In the `order` table, which `account_id`s were responsible for orders between `order_id` 29540 and `order_id` 29560 (inclusive)?

SELECT DISTINCT(account_id)
FROM `order`
WHERE order_id>=29540 and order_id<=29560

Expected result:

```shell
Expand All @@ -156,6 +205,10 @@ Expected result:

In the `order` table, what are the individual amounts that were sent to (`account_to`) id 30067122?

SELECT amount
FROM `order`
WHERE account_to=30067122

Expected result:

```shell
Expand All @@ -166,6 +219,12 @@ Expected result:

In the `trans` table, show the `trans_id`, `date`, `type` and `amount` of the 10 first transactions from `account_id` 793 in chronological order, from newest to oldest.

SELECT trans_id, date, type, amount
FROM trans
WHERE account_id=793
ORDER BY date DESC
LIMIT 10

Expected result:

```shell
Expand All @@ -185,6 +244,11 @@ Expected result:

In the `client` table, of all districts with a `district_id` lower than 10, how many clients are from each `district_id`? Show the results sorted by the `district_id` in ascending order.

SELECT COUNT(client_id)
FROM client
WHERE district_id<10
GROUP BY district_id

Expected result:

```shell
Expand All @@ -203,6 +267,10 @@ Expected result:

In the `card` table, how many cards exist for each `type`? Rank the result starting with the most frequent `type`.

SELECT type, COUNT(type)
FROM card
GROUP BY type

Expected result:

```shell
Expand All @@ -215,6 +283,12 @@ gold 88

Using the `loan` table, print the top 10 `account_id`s based on the sum of all of their loan amounts.

SELECT account_id, amount
FROM loan
GROUP BY (account_id)
ORDER BY amount DESC
LIMIT 10

Expected result:

```shell
Expand All @@ -234,6 +308,13 @@ Expected result:

In the `loan` table, retrieve the number of loans issued for each day, before (excl) 930907, ordered by date in descending order.

SELECT DATE, COUNT(DATE) AS COUNTER
FROM(SELECT *
FROM loan
WHERE DATE<930907)
GROUP BY DATE
ORDER BY DATE DESC

Expected result:

```
Expand All @@ -248,6 +329,12 @@ Expected result:

In the `loan` table, for each day in December 1997, count the number of loans issued for each unique loan duration, ordered by date and duration, both in ascending order. You can ignore days without any loans in your output.

SELECT DATE, duration, COUNT(loan_id) AS COUNTER
FROM LOAN
WHERE DATE LIKE '9712%'
GROUP BY DATE, duration
ORDER BY DATE

Expected result:

```shell
Expand Down Expand Up @@ -277,6 +364,12 @@ Expected result:

In the `trans` table, for `account_id` 396, sum the amount of transactions for each type (`VYDAJ` = Outgoing, `PRIJEM` = Incoming). Your output should have the `account_id`, the `type` and the sum of amount, named as `total_amount`. Sort alphabetically by type.

SELECT account_id, type, SUM(amount)
FROM (SELECT *
FROM TRANS
WHERE account_id=396)
GROUP BY TYPE

Expected result:

```shell
Expand Down