전체 글 90

윈도우 함수

USE BaseballData; -- 윈도우 함수 -- 행들의 서브 집합을 대상으로, 각 행별로 계산을 해서 스칼라(단일 고정)값을 출력하는 함수 -- 느낌상 GROUPING이랑 비슷한가? -- SUM, COUNT, AVG 집계 함수 SELECT* FROM salaries ORDER BY salary DESC; SELECT playerID, MAX(salary) FROM salaries GROUP BY playerID ORDER BY MAX(salary) DESC -- 윈도우 함수 -- ~OVER([PARTITION] [ORDER BY] [ROWS]) -- 전체 데이터를 연봉 순서로 나열하고, 순위 표기 SELECT *, ROW_NUMBER() OVER (ORDER BY salaryDESC),-- 행#번..

TRANSACTION

특이사항 = 조직문화에 따라서 사용유무가 갈린다. /* TRANSACTION ALL OR NOTING 유저간의 거래 A의 인벤토리에서 아이템 제거 (제거가 안되고) B의 인벤토리에 아이템 추가 (추가가 되었을 경우) A의 골드 감소 강화는 일어났는데 무기강화가 연동되지 않아, 무기 강화는 안된것. 이런 문제점을 막기 위해 사용한다. BEGIN TRAN; COMMIT; ROLLBACK; EX) 메일 = BEGIN TRAN; 보낼것인가? = COMMIT; 취소할 것인가? = ROLLBACK; 성공 / 실패 여부에 따라 COMMIT(= COMMIT을 수동으로 하겠다.) */ ROLLBACK 적용하여도 ROLLBACK을 했기 때문에, COMMIT을 하지 않음. COMMIT 했을 경우는 데이터를 등록에 허가하므로..

우선순위 큐 (PriorityQueue)

#include #include #include #include #include using namespace std; template class PriorityQueue { public: void push(const T& data) { // 우선 힙 구조부터 맞춰준다. _heap.push_back(data); //도장깨기 시작 //static_cast(대상); // 현재 Index를 받는다. int now = static_cast(_heap.size()) - 1; while (now > 0) { int next = (now - 1) / 2; if (_predicate(_heap[now], _heap[next])) break; ::swap(_heap[now], _heap[next]); now = next;..

힙 이론

이진트리 = 각 노드가 최대 두 개의 자식 노드를 가지는 트리 이진 검색 트리 특징 1) 왼쪽을 타고 가면 현재 값보다 작다. 2) 오른쪽을 타고 가면 현재 값보다 크다. 만약 무식하게 추가하면, 한쪽으로 기울어져서 균형이 깨진다. 트리 재배치를 통해 균형을 유지하는 것이 과제 힙 트리 [부모 노드]가 가진 값은 항상 [자식 노드]가 가진 값보다 크다. 1) 마지막 레벨을 제외한 모든 레벨에 노드가 꽉 차 있다. 2) 마지막 레벨에 노드가 있을 떄는, 항상 왼쪽부터 순서대로 채워야 한다. 노드 개수를 알면, 트리 구조는 무조건 확정할 수 있다. 배열을 이용해서 힙 구조를 바로 표현할 수 있다. 1) i번 노드의 왼쪽 자식은 [(2 * i) +1] 번 2) i번 노드의 오른쪽 자식은 [(2 * i + 2)..

교집합, 합집합, 차집합

use BaseballData; --RDBMS(Realtional 관계형) --데이터를 집합으로 간주한다. --복수의 테이블을 다루는 방법 --커리어 평균 연봉이 3백만 이상인 선수들의 playerID SELECT playerID, AVG(salary) FROM salaries GROUP BY playerID HAVING AVG(salary) >= 3000000 -- 12월에 태어난 선수들의 playerID SELECT playerID, birthMonth FROM players WHERE birthMonth = 12 -- [커리어 평균 연봉이 300000이상] 이거나 [12월에 태어난] 선수 --UNION (중복 제거) UNION ALL(중복 허용) SELECT playerID FROM salaries..

Line Rederer (라인 렌더러)

라인 렌더러 라인 렌더러란? 라인 렌더러란 두 Transform을 연결하여 라인을 생성하는 유니티에서 제공하는 기능이다. using UnityEngine; public class Line_Rederer : MonoBehaviour { LineRenderer lr; private void Awake() { lr = GetComponent(); } public void SetUpLine(Transform[] points, Edge_Color color) { lr.positionCount = points.Length; //시작점 0번 //다음 도착점 1번의 포인트 위치값을 받아 선을 그어준다. for (int i = 0; i < points.Length; i++) { lr.material = Game.Inst..

정리/UNITY 2022.02.09