CREATE PROCEDURE alarmClocks() BEGIN DROP TABLE IF EXISTS calendarWeek; CREATE TABLE calendarWeek ( `number` INT ); SET @s = 0; loopLabel: LOOP INSERT INTO calendarWeek (`number`) VALUES (@s); SET @s = @s + 1; IF @s <= 53 THEN ITERATE loopLabel; END IF; LEAVE loopLabel; END LOOP loopLabel; SELECT alarm_date FROM (SELECT DATE_ADD(input_date, INTERVAL (7 * number) DAY) AS alarm_date FROM userInput, calendarWeek) AS t, userInput WHERE YEAR(alarm_date) = YEAR(input_date); END
24 February 2018
alarmClocks
My solution:
Labels:
Arcade,
CodeSignal,
Databases,
MySQL,
Time River Revisited
netIncome
My solution:
Note:
profit: BIGINT UNSIGNED and
loss: BIGINT UNSIGNED
need to be converted to SIGNED INT.
CREATE PROCEDURE netIncome() BEGIN SELECT YEAR( date) AS year, QUARTER(date) AS quarter, SUM(CONVERT(profit, SIGNED INT) - CONVERT(loss, SIGNED INT)) AS net_profit FROM accounting GROUP BY year, quarter ORDER BY date; END
Note:
profit: BIGINT UNSIGNED and
loss: BIGINT UNSIGNED
need to be converted to SIGNED INT.
Labels:
Arcade,
CodeSignal,
Databases,
MySQL,
Time River Revisited
21 February 2018
pastEvents
My solution:
CREATE PROCEDURE pastEvents() BEGIN SELECT name, event_date FROM Events, (SELECT MAX(DATE(event_date)) AS last_date FROM Events) AS t WHERE event_date != t.last_date AND DATEDIFF(t.last_date, event_date) <= 7 ORDER BY event_date DESC; END
Labels:
Arcade,
CodeSignal,
Databases,
MySQL,
Time River Revisited
dateFormatting
My solution:
CREATE PROCEDURE dateFormatting() BEGIN SELECT DATE(date_str) AS date_iso FROM documents ORDER BY id; END
Labels:
Arcade,
CodeSignal,
Databases,
MySQL,
Time River Revisited
importantEvents
My solution:
CREATE PROCEDURE importantEvents() BEGIN SELECT * FROM events ORDER BY ( DAYOFWEEK(event_date) + 5 ) % 7, participants DESC; END
Labels:
Arcade,
CodeSignal,
Databases,
MySQL,
Time River Revisited
validPhoneNumbers
My solution:
CREATE PROCEDURE validPhoneNumbers() BEGIN SELECT * FROM phone_numbers WHERE phone_number REGEXP "^1-[[:digit:]]{3}-[[:digit:]]{3}-[[:digit:]]{4}$" OR phone_number REGEXP "^[[.left-parenthesis.]]1[[.right-parenthesis.]][[:digit:]]{3}-[[:digit:]]{3}-[[:digit:]]{4}$" ORDER BY surname; END
Labels:
Arcade,
CodeSignal,
Databases,
MySQL,
Regular Paradise
20 February 2018
correctIPs
My solution:
CREATE PROCEDURE correctIPs() BEGIN SELECT id, ip FROM ips WHERE ip REGEXP "^((25[0-6]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){2}[1-9][0-9]\.(25[0-6]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$" OR ip REGEXP "^((25[0-6]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){2}(25[0-6]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.[1-9][0-9]$" ORDER BY id; END
Labels:
Arcade,
CodeSignal,
Databases,
MySQL,
Regular Paradise
Subscribe to:
Posts (Atom)