본문 바로가기

SQL

(41)
(SQL) - LeetCode (easy) 1683. Invalid Tweets https://leetcode.com/problems/invalid-tweets/description/문자열의 길이를 세는 간단한 문제였습니다.📕 풀이방법📔 풀이과정content의 length 가 15 초과하는 id들을 select해줍니다.📕 Code📔 ANSI SQLselect tweet_id as tweet_id from tweetswhere length(content) > 15*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
(SQL) - LeetCode (easy) 1667. Fix Names in a Table https://leetcode.com/problems/fix-names-in-a-table/description/문자열을 다뤄보는 문제였습니다.📕 풀이방법📔 풀이과정첫 글자와 나머지 글자로 나눠 첫 글자는 대문자로, 나머지 글자는 소문자로 바꾼 결과를 CONCAT처리해 select해줍니다.📕 Code📔 MySQLSELECT user_id, CONCAT(UPPER(SUBSTRING(name FROM 1 FOR 1)), LOWER(SUBSTRING(name FROM 2))) AS nameFROM UsersORDER BY user_id;📔 OracleSELECT user_id, UPPER(SUBSTR(name, 1, 1)) || LOWER(SUBSTR(nam..
(SQL) - LeetCode (easy) 1656. Design an Ordered Stream https://leetcode.com/problems/average-time-of-process-per-machine/with절을 사용해본 문제였습니다.📕 풀이방법📔 풀이과정1. machin_id, process_id에 대한 group by로 activity_type의 start와 end 시간을 뺀 processing_time을 projection해 ProcessTime table에 정리합니다.2. 이 ProcessTime의 processing_time을 평균값으로 projection해 MachineAverageTimes table에 저장합니다.3. MachineAverageTimes의 모든 column을 select합니다.📕 Code📔 SQLwith ProcessTime as ( selec..
(SQL) - LeetCode (easy) 1587. Bank Account Summary II https://leetcode.com/problems/bank-account-summary-ii/description/join, group by를 사용해본 문제였습니다.📕 풀이방법📔 풀이과정users와 transactions를 join한 후 users name과 transactions amount총합을 구해줍니다. 총합을 구하기 위해 sum 함수를 사용해야 하므로 account, name에 대해 group by를 해줍니다.📕 Code📔 ANSI SQLselect u.name, sum(t.amount) as balance from users ujoin transactions t on u.account = t.accountgroup by t.account, u.namehaving sum(t.amoun..
(SQL) - LeetCode (easy) 1581. Customer Who Visited but Did Not Make Any Transactions https://leetcode.com/problems/customer-who-visited-but-did-not-make-any-transactions/description/join을 사용해본 문제였습니다.📕 풀이방법📔 풀이과정visit_id로 visits와 transactions table을 join한 후 customer_id로 goup by햐 transaction_id가 null인 column의 visit_id를 count해 준 후 customer_id와 함께 select합니다.📕 Code📔 ANSI SQLselect v.customer_id, count(v.visit_id) as count_no_transfrom visits vleft join transactions t on v.visit_..
(SQL) - LeetCode (easy) 1407. Top Travellers https://leetcode.com/problems/top-travellers/description/ left join과 COALESECE함수를 사용해 본 문제였습니다. 📕 풀이방법 📔 풀이과정 1. users table에 rides table을 user_id에 대해 left join해줍니다. 이는 left outer join과 같은 keyword입니다. users.id에 대한 값이 rides.user_id에 없으면 자동으로 rides의 column에 null을 채워주게 됩니다.2. group by로 u.id, u.name에 대해 진행한 후 sum값으로 각 user_id의 distance합을 구해 null값인 경우 0으로 만들어 주도록 coalesce함수를 사용해줍니다. 📕 Code 📔 ANSI SQL..
(SQL) - LeetCode (easy) 1378. Replace Employee ID With The Unique Identifier https://leetcode.com/problems/replace-employee-id-with-the-unique-identifier/ Replace Employee ID With The Unique Identifier - LeetCode Can you solve this real interview question? Replace Employee ID With The Unique Identifier - Table: Employees +---------------+---------+ | Column Name | Type | +---------------+---------+ | id | int | | name | varchar | +---------------+---------+ id is t leetc..
(Tibero 7) - varray 찍먹하기 🍳머리말 tibero7 에서는 list data type이 없기 때문에 그에 준하는 여러 type으로 column을 선언해 사용합니다. json보다 조회 및 data 변경이 빠른 varray를 다뤄보는 기본 예제에 대한 설명입니다. 📕Prerequisite 📔 Tibero 7 📔 DBeaver 📕생성 📔 varray type선언으로 생성해야됩니다. 📑 DDL CREATE OR REPLACE TYPE "EX_VARRAY_TYPE" AS VARRAY(1000) OF NUMBER; 📔 table 조직, 요리사, 과학자, 회사원 table이 존재하며 조직이 요리사, 과학자 id 들을 varray로 들고 있습니다. 하나의 조직에 속한 여러 요리사들과 과학자들 그리고 회사원을 의미합니다. 📑 DDL CREATE S..