웹사이트에서 일어나는 모든 이벤트를 저장하는 events
라는 테이블이 있습니다.
제가 시도해 본 바이올린과 코드
앞에 동적 테이블이 있는데 그 안에 이렇게 동적 열을 넣고 싶습니다.
으아악 여기서 event1
、event2
...是来自 events.type
는 열의 동적 열입니다.
저는 events
테이블에 데이터를 정리하고 집계하는 가장 좋은 방법을 찾고 있습니다.
행을 열로 변환하고 원하는 방식으로 데이터를 표시하는 쿼리를 작성했지만 문제는 이 집계된 데이터를 나중에 필터링할 수 있는 방식으로 저장하는 것입니다.
events
表中的 type
列可以包含数千个 DISTINCT
테이블의 type
열에는 수천 개의 DISTINCT
값이 포함될 수 있습니다pageview
、purchase
...事件,用户2可能有purchase
、testevent1
... 이벤트만 가질 수 있으므로 앞에 다른 열이 있습니다. 데이터를 집계하고 events
다른 테이블에 저장하여 나중에 다른 쿼리를 실행할 수 있는 방법에 대한 제안이 있으신가요?
내가 시도한 바이올린과 코드
어떤 도움이라도 대단히 감사하겠습니다.
P粉5461383442024-02-26 17:22:01
SQL에서는 행마다 다른 열이 있는 테이블을 만들 수 없습니다. "동적 열"과 같은 것은 없습니다.
관계형 데이터베이스의 작동 방식에 대한 기본 사실 중 하나는 테이블에 열과 데이터 유형의 이름을 지정하는 헤더가 있고 그 뒤에 테이블의 각 행이 헤더와 정확히 동일한 열이 있는 행 집합이 있다는 것입니다. 그 테이블.
따라서 가장 좋은 방법은 일부 사용자가 해당 이벤트 유형을 사용할 수 없는 경우에도 각 이벤트 유형에 대한 열이 있는 테이블을 만드는 것입니다. 이 열의 값은 이 사용자와 관련이 없음을 나타내는 NULL일 수 있습니다.
SQL SELECT 쿼리에서는 쿼리의 모든 열을 지정해야 합니다. 이러한 열은 쿼리를 구문 분석하기 전과 실행이 시작되기 전에 쿼리에서 수정되어야 합니다. 쿼리 실행 중에 데이터를 검토하면서 동적으로 열을 추가하는 쿼리를 생성할 수 없습니다.
피벗 쿼리 유형은 다음과 같습니다.
으아악이 쿼리를 작성하기 전에 가능한 모든 이벤트 유형을 이해해야 합니다. 이 작업을 수행하려면 다른 쿼리를 사용할 수 있습니다.
으아악