mirror of https://github.com/me50/kukemuna.git
automated commit by check50 [check50=True]
This commit is contained in:
commit
e7567d9faf
|
|
@ -0,0 +1,3 @@
|
|||
The THIEF is: Bruce
|
||||
The city the thief ESCAPED TO: New York City
|
||||
The ACCOMPLICE is: Robin
|
||||
|
|
@ -0,0 +1,295 @@
|
|||
-- Keep a log of any SQL queries you execute as you solve the mystery.
|
||||
|
||||
-- Get overview of available data (tables)
|
||||
.tables
|
||||
|
||||
-- airports crime_scene_reports people
|
||||
-- atm_transactions flights phone_calls
|
||||
-- bakery_security_logs interviews
|
||||
-- bank_accounts passengers
|
||||
|
||||
|
||||
-- Get structure of crime_scene_reports
|
||||
.schema crime_scene_reports
|
||||
|
||||
-- id INTEGER,
|
||||
-- year INTEGER,
|
||||
-- month INTEGER,
|
||||
-- day INTEGER,
|
||||
-- street TEXT,
|
||||
-- description TEXT,
|
||||
-- PRIMARY KEY(id)
|
||||
|
||||
-- All you know is that the theft took place on July 28, 2023 and that it took place on Humphrey Street.
|
||||
SELECT description FROM crime_scene_reports
|
||||
WHERE year = 2023 AND month = 7 AND day = 28
|
||||
AND street = 'Humphrey Street';
|
||||
|
||||
-- Theft of the CS50 duck took place at 10:15am at the Humphrey Street bakery. Interviews were conducted today with three witnesses who were present at the time –
|
||||
-- each of their interview transcripts mentions the bakery.
|
||||
|
||||
-- Littering took place at 16:36. No known witnesses.
|
||||
|
||||
|
||||
-- Get structure of interviews
|
||||
.schema interviews
|
||||
|
||||
-- id INTEGER,
|
||||
-- name TEXT,
|
||||
-- year INTEGER,
|
||||
-- month INTEGER,
|
||||
-- day INTEGER,
|
||||
-- transcript TEXT,
|
||||
-- PRIMARY KEY(id)
|
||||
|
||||
|
||||
-- Get transcripts from the same day with mentions to bakery
|
||||
SELECT transcript FROM interviews
|
||||
WHERE year = 2023 AND month = 7 AND day = 28
|
||||
AND transcript LIKE '%bakery%';
|
||||
|
||||
-- Sometime within ten minutes of the theft, I saw the thief get into a car in the bakery parking lot and drive away. If you have security footage from the bakery parking lot,
|
||||
-- you might want to look for cars that left the parking lot in that time frame.
|
||||
|
||||
-- I don't know the thief's name, but it was someone I recognized. Earlier this morning, before I arrived at Emma's bakery, I was walking by the ATM on Leggett Street
|
||||
-- and saw the thief there withdrawing some money.
|
||||
|
||||
-- As the thief was leaving the bakery, they called someone who talked to them for less than a minute. In the call, I heard the thief say that they were planning to take
|
||||
-- the earliest flight out of Fiftyville tomorrow. The thief then asked the person on the other end of the phone to purchase the flight ticket.
|
||||
|
||||
|
||||
-- Get structure of bakery_security_logs
|
||||
.schema bakery_security_logs
|
||||
|
||||
-- id INTEGER,
|
||||
-- year INTEGER,
|
||||
-- month INTEGER,
|
||||
-- day INTEGER,
|
||||
-- hour INTEGER,
|
||||
-- minute INTEGER,
|
||||
-- activity TEXT,
|
||||
-- license_plate TEXT,
|
||||
-- PRIMARY KEY(id)
|
||||
|
||||
-- Get licence plates of leaving customers from within 10 minutes of theft (10:15am)
|
||||
SELECT license_plate FROM bakery_security_logs
|
||||
WHERE year = 2023 AND month = 7 AND day = 28 AND hour = 10 AND minute BETWEEN 5 AND 25
|
||||
AND activity = 'exit';
|
||||
|
||||
-- 5P2BI95
|
||||
-- 94KL13X
|
||||
-- 6P58WS2
|
||||
-- 4328GD8
|
||||
-- G412CB7
|
||||
-- L93JTIZ
|
||||
-- 322W7JE
|
||||
-- 0NTHK55
|
||||
|
||||
|
||||
-- Get structure of atm_transactions
|
||||
.schema atm_transactions
|
||||
|
||||
-- id INTEGER,
|
||||
-- account_number INTEGER,
|
||||
-- year INTEGER,
|
||||
-- month INTEGER,
|
||||
-- day INTEGER,
|
||||
-- atm_location TEXT,
|
||||
-- transaction_type TEXT,
|
||||
-- amount INTEGER,
|
||||
-- PRIMARY KEY(id)
|
||||
|
||||
-- Get account numbers of withdrawals from Leggett Street ATM on the day of theft
|
||||
SELECT account_number FROM atm_transactions
|
||||
WHERE year = 2023 AND month = 7 AND day = 28
|
||||
AND atm_location = 'Leggett Street' AND transaction_type = 'withdraw';
|
||||
|
||||
-- 28500762
|
||||
-- 28296815
|
||||
-- 76054385
|
||||
-- 49610011
|
||||
-- 16153065
|
||||
-- 25506511
|
||||
-- 81061156
|
||||
-- 26013199
|
||||
|
||||
|
||||
-- Get structure of phone_calls
|
||||
.schema phone_calls
|
||||
|
||||
-- id INTEGER,
|
||||
-- caller TEXT,
|
||||
-- receiver TEXT,
|
||||
-- year INTEGER,
|
||||
-- month INTEGER,
|
||||
-- day INTEGER,
|
||||
-- duration INTEGER,
|
||||
-- PRIMARY KEY(id)
|
||||
|
||||
-- Get caller and receiver of calls with duration under a minute
|
||||
SELECT caller FROM phone_calls
|
||||
WHERE year = 2023 AND month = 7 AND day = 28
|
||||
AND duration < 60;
|
||||
|
||||
-- Caller | Receiver
|
||||
-- (130) 555-0289 | (996) 555-8899
|
||||
-- (499) 555-9472 | (892) 555-8872
|
||||
-- (367) 555-5533 | (375) 555-8161
|
||||
-- (499) 555-9472 | (717) 555-1342
|
||||
-- (286) 555-6063 | (676) 555-6554
|
||||
-- (770) 555-1861 | (725) 555-3243
|
||||
-- (031) 555-6622 | (910) 555-3251
|
||||
-- (826) 555-1652 | (066) 555-9701
|
||||
-- (338) 555-6650 | (704) 555-2131
|
||||
|
||||
|
||||
-- Get structure of flights
|
||||
.schema flights
|
||||
|
||||
-- id INTEGER,
|
||||
-- origin_airport_id INTEGER,
|
||||
-- destination_airport_id INTEGER,
|
||||
-- year INTEGER,
|
||||
-- month INTEGER,
|
||||
-- day INTEGER,
|
||||
-- hour INTEGER,
|
||||
-- minute INTEGER,
|
||||
-- PRIMARY KEY(id),
|
||||
-- FOREIGN KEY(origin_airport_id) REFERENCES airports(id),
|
||||
-- FOREIGN KEY(destination_airport_id) REFERENCES airports(id)
|
||||
|
||||
-- Get structure of airports
|
||||
.schema airports
|
||||
|
||||
-- id INTEGER,
|
||||
-- abbreviation TEXT,
|
||||
-- full_name TEXT,
|
||||
-- city TEXT,
|
||||
-- PRIMARY KEY(id)
|
||||
|
||||
-- Get structure of passengers
|
||||
.schema passengers
|
||||
|
||||
-- flight_id INTEGER,
|
||||
-- passport_number INTEGER,
|
||||
-- seat TEXT,
|
||||
-- FOREIGN KEY(flight_id) REFERENCES flights(id)
|
||||
|
||||
-- Get passengers (passport_number) of earliest flight out of Fiftyville the next day
|
||||
SELECT passport_number FROM passengers
|
||||
WHERE flight_id IN (
|
||||
SELECT flights.id FROM flights
|
||||
JOIN airports ON flights.origin_airport_id = airports.id
|
||||
WHERE year = 2023 AND month = 7 AND day = 29
|
||||
AND city = 'Fiftyville'
|
||||
ORDER BY hour LIMIT 1
|
||||
);
|
||||
|
||||
-- 7214083635
|
||||
-- 1695452385
|
||||
-- 5773159633
|
||||
-- 1540955065
|
||||
-- 8294398571
|
||||
-- 1988161715
|
||||
-- 9878712108
|
||||
-- 8496433585
|
||||
|
||||
-- Get destination airport for that flight
|
||||
SELECT city FROM airports
|
||||
WHERE id IN (
|
||||
SELECT destination_airport_id FROM flights
|
||||
JOIN airports ON flights.origin_airport_id = airports.id
|
||||
WHERE year = 2023 AND month = 7 AND day = 29
|
||||
AND city = 'Fiftyville'
|
||||
ORDER BY hour LIMIT 1
|
||||
);
|
||||
|
||||
-- New York City
|
||||
|
||||
|
||||
-- Get structure of people
|
||||
.schema people
|
||||
|
||||
-- id INTEGER,
|
||||
-- name TEXT,
|
||||
-- phone_number TEXT,
|
||||
-- passport_number INTEGER,
|
||||
-- license_plate TEXT,
|
||||
-- PRIMARY KEY(id)
|
||||
|
||||
-- Get structure of bank_accounts
|
||||
.schema bank_accounts
|
||||
|
||||
-- account_number INTEGER,
|
||||
-- person_id INTEGER,
|
||||
-- creation_year INTEGER,
|
||||
-- FOREIGN KEY(person_id) REFERENCES people(id)
|
||||
|
||||
-- Get the name of the thief and a phone number of accomplice
|
||||
SELECT name, receiver FROM people
|
||||
JOIN bank_accounts ON people.id = bank_accounts.person_id
|
||||
JOIN phone_calls ON people.phone_number = phone_calls.caller
|
||||
WHERE license_plate IN ( -- Licence plates of leaving customers from within 10 minutes of theft (10:15am)
|
||||
SELECT license_plate FROM bakery_security_logs
|
||||
WHERE year = 2023 AND month = 7 AND day = 28 AND hour = 10 AND minute BETWEEN 5 AND 25
|
||||
AND activity = 'exit'
|
||||
)
|
||||
AND passport_number IN ( -- Ppassport numbers of people on earliest flight out of Fiftyville the next day
|
||||
SELECT passport_number FROM passengers
|
||||
WHERE flight_id IN (
|
||||
SELECT flights.id FROM flights
|
||||
JOIN airports ON flights.origin_airport_id = airports.id
|
||||
WHERE year = 2023 AND month = 7 AND day = 29
|
||||
AND city = 'Fiftyville'
|
||||
ORDER BY hour LIMIT 1
|
||||
)
|
||||
AND phone_number IN ( -- Caller numbers with duration under a minute
|
||||
SELECT caller FROM phone_calls
|
||||
WHERE year = 2023 AND month = 7 AND day = 28
|
||||
AND duration < 60
|
||||
)
|
||||
AND account_number IN ( -- Account numbers of withdrawals from Leggett Street ATM on the day of theft
|
||||
SELECT account_number FROM atm_transactions
|
||||
WHERE year = 2023 AND month = 7 AND day = 28
|
||||
AND atm_location = 'Leggett Street' AND transaction_type = 'withdraw'
|
||||
)
|
||||
AND day = 28 AND duration < 60
|
||||
);
|
||||
|
||||
-- Bruce
|
||||
|
||||
-- Get the name of the accomplice
|
||||
SELECT name FROM people
|
||||
WHERE phone_number IN (
|
||||
SELECT receiver FROM people
|
||||
JOIN bank_accounts ON people.id = bank_accounts.person_id
|
||||
JOIN phone_calls ON people.phone_number = phone_calls.caller
|
||||
WHERE license_plate IN ( -- Licence plates of leaving customers from within 10 minutes of theft (10:15am)
|
||||
SELECT license_plate FROM bakery_security_logs
|
||||
WHERE year = 2023 AND month = 7 AND day = 28 AND hour = 10 AND minute BETWEEN 5 AND 25
|
||||
AND activity = 'exit'
|
||||
)
|
||||
AND passport_number IN ( -- Ppassport numbers of people on earliest flight out of Fiftyville the next day
|
||||
SELECT passport_number FROM passengers
|
||||
WHERE flight_id IN (
|
||||
SELECT flights.id FROM flights
|
||||
JOIN airports ON flights.origin_airport_id = airports.id
|
||||
WHERE year = 2023 AND month = 7 AND day = 29
|
||||
AND city = 'Fiftyville'
|
||||
ORDER BY hour LIMIT 1
|
||||
)
|
||||
AND phone_number IN ( -- Caller numbers with duration under a minute
|
||||
SELECT caller FROM phone_calls
|
||||
WHERE year = 2023 AND month = 7 AND day = 28
|
||||
AND duration < 60
|
||||
)
|
||||
AND account_number IN ( -- Account numbers of withdrawals from Leggett Street ATM on the day of theft
|
||||
SELECT account_number FROM atm_transactions
|
||||
WHERE year = 2023 AND month = 7 AND day = 28
|
||||
AND atm_location = 'Leggett Street' AND transaction_type = 'withdraw'
|
||||
)
|
||||
AND day = 28 AND duration < 60
|
||||
)
|
||||
);
|
||||
|
||||
-- Robin
|
||||
Loading…
Reference in New Issue