목록분류 전체보기 (253)
bdfgdfg
SELECT date_format(sales_date, '%Y-%m-%d') as SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ONLINE_SALE WHERE SALES_DATE Between N'2022-03-01' and N'2022-03-31' UNION ALL SELECT date_format(sales_date, '%Y-%m-%d') as SALES_DATE, PRODUCT_ID, NULL, SALES_AMOUNT FROM OFFLINE_SALE WHERE SALES_DATE Between N'2022-03-01' and N'2022-03-31' ORDER BY SALES_DATE ASC, PRODUCT_ID ASC, USER_ID ASC; 문제를 ..
SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE Group by User_ID, PRODUCT_ID Having Count(*) >= 2 ORDER BY USER_ID ASC, PRODUCT_ID DESC; 이중 정렬과 함께 Group by를 이용한 문제. Group by는 어떠한 칼럼을 기준으로 그룹화 한다. 보통 Group by는 집계함수(Count,Sum,Max등)과 같이 쓰임. 예로들어 어느 게임의 1등을 한 유저를 기록하는 테이블이 있다고 하자. 이 테이블을 통해 1등을 한 횟수가 높은 유저를 Top 10명만 추출해본다고 해보자. (사실 따로 카운트를 세는 칼럼을 추가하고 User_ID를 키로 택하는게 맞는 선택일듯) 테이블 명은 Game_1stRank? 칼럼은 U..
이중 정렬을 통해 풀어야하는 문제. Order by를 자주 사용하지만.. 이중 정렬이 가능한지는 몰랐다. SELECT FLAVOR FROM FIRST_HALF ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID ASC; 즉 정렬을 기준을 TOTAL_ORDER로 내림차순 정렬을 하되, 같은 값이 있으면 SHIPMENT_ID로 오름차순 정렬하는 쿼리문.
C++에도 있는거. 멀티쓰레드 환경에서 원자적으로 처리를 위해 사용한다. 내부적으로 다양한 것들이 있지만 중요하다 생각하는 것. Interlocked.CompareExchange 즉 비교와 교환을 원자적으로 처리한다. 밑의 코드가 있다고 생각해보자. void ExpireQuest() { if(Quest.bAlive == true) { Quest.bAlive = false; } } 어떤 퀘스트가 있고, 퀘스트 객체는 만료날짜를 넘어갔기에 해당 퀘스트를 닫아줘야 하는 코드. 만약 멀티쓰레드 환경에서 저 코드가 실행된다고 보자. A,B쓰레드가 있고 A와 B쓰레드는 저 Quest라는 객체에 동시에 접근하는 상황. A쓰레드는 if문의 Quest.bAlive가 true인것을 확인하고 해당 Quest의 멤버인 bAl..