TIL(Today I Learned) - 오늘의 공부

[왕초보] 웹개발 종합반 4주차를 수강했다

  • FireBase의 정의 및 세팅 방법!
// Firebase SDK 라이브러리 가져오기
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-app.js";
import { getFirestore } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";
import { collection, addDoc } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";
import { getDocs } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";

// Firebase 구성 정보 설정 < 프로젝트 설정 구성에 있는 코드다 
const firebaseConfig = {
        본인 설정 내용 채우기 
};

// Firebase 인스턴스 초기화
const app = initializeApp(firebaseConfig);
const db = getFirestore(app);
  • FireBase 에 값을 저장 및 가져오는 방법!
//데이터 정보를 저장하기
$("#id").click(async function () {
let doc = {};
await addDoc(collection(db, "콜렉션이름"), doc);
})

//데이터 정보를 가져오기
let docs = await getDocs(collection(db, "콜렉션이름"));
docs.forEach((doc) => {
let row = doc.data();
console.log(row);
}); 

노션 퀘스트 SQL 실전! 과제 Lv3. 까지 수행

  • Lv.4 단골 고객님 찾기
  1. 고객별로 주문 건수와 총 주문 금액을 조회하는 SQL 쿼리를 작성해주세요.

     SELECT  c.CustomerName 
             , COUNT(o.CustomerID) OrderCount
             , SUM(o.TotalAmount) TotalSpent
     FROM customers c 
     LEFT JOIN orders o 
             ON c.CustomerID = o.CustomerID
     GROUP BY 1
    
  2. 나라별로 총 주문 금액이 가장 높은 고객의 이름과 그 고객의 총 주문 금액을 조회하는 SQL 쿼리를 작성해주세요.

     SELECT  c.Country 
             , c.customerName Top_Customer
             , SUM(o.TotalAmount) TotalSpent
     FROM customers c 
     LEFT JOIN orders o 
             ON c.CustomerID = o.CustomerID
     GROUP BY 1, 2
     HAVING (c.Country, SUM(o.TotalAmount)) IN
     (
     SELECT  Country 
             , MAX(TotalSpent)
     FROM
     (
     SELECT  c.Country
             , c.CustomerName
             , SUM(o.TotalAmount) TotalSpent
     FROM customers c 
     LEFT JOIN orders o 
             ON c.CustomerID = o.CustomerID
     GROUP BY 1, 2
     ) a
     GROUP BY 1
     )
    

TIL(Today I Learned) - 학습 과정 중 특이사항

  • 블로그를 포스트가 안올라 갈때마다 여러 방법으로 코드를 수정하면서 적용하느라 시간이 많이 지나갔는데,
    어이없게도 게시 일의 “시간”이 “현재 시간”보다 크면 안돼는 오류였다..

  • 이번 SQL 문제를 풀면서 CSV 파일을 테이블에 올리기 위해 MySQL 을 설치하고 세팅하는 방법 터득했다.

  • SQL 문제를 풀 때 HAVING 함수를 이용하는 제약으로 2번째 문제를 푸는데 오래 걸렸다.
    (멀티 컬럼 서브 쿼리를 이용하여 비교하는 방법을 알게 되었다.)