이전에는 Postgres에서 롤링 평균을 작성하는 방법에 대해 논의했습니다. 대중적인 요구에 따라 MySQL과 SQL Server에서 동일한 작업을 수행하는 방법을 보여줍니다. 이와 같은 잡음이 많은 차트에 주석을 추가하는 방법을 설명합니다. 큰 아이디어. 위의 첫 번째 그래프는 매우 시끄럽고 유용한 정보를 얻는 데 어려움이 있습니다. 기본 데이터 상단에 7 일 평균을 플로팅하여 매끄럽게 할 수 있습니다. 창 함수, 자체 조인 또는 상관 관계 분석을 통해 수행 할 수 있습니다. 서브 쿼리 - 처음 두 개를 다룰 것입니다. 이전 평균으로 시작합니다. 즉, 7 일 평균 포인트는 처음 7 일 평균입니다. 즉, 그래프에서 스파이크가 오른쪽으로 이동하고, 큰 스파이크는 다음 7 일 동안 평균됩니다. 먼저 중간 수 테이블을 만듭니다. 우리는 매일 전체 가입에 대한 평균을 계산하려고합니다. 새 사용자 당 행과 생성 된 타임 스탬프가있는 일반 사용자 테이블이 있다고 가정합니다. , 우리는 우리의 집계를 만들 수 있습니다. Postgres와 SQL Server에서는 이것을 CTE로 사용할 수 있습니다. MySQL에서는 임시 테이블로 저장할 수 있습니다. Postgres Rolling Average. 다행히 Postgres는 실행 평균을 계산하는 가장 간단한 방법 인 창 함수를 가지고 있습니다. 이 쿼리 날짜에는 간격이 없다고 가정합니다. 쿼리는 과거 7 개 날짜가 아닌 지난 7 개 행에 대해 평균을 계산합니다. 데이터에 간격이 있으면 generateeries 또는 조밀 한 날짜 행을 가진 테이블에 대한 조인으로 채 웁니다. MySQL 롤링 평균. MySQL은 부족합니다 우리는 셀 조인을 사용하여 유사한 계산을 할 수 있습니다. 카운트 테이블의 각 행에 대해 지난 7 일 내에 있었던 모든 행을 결합하여 평균을 취합니다. 이 쿼리는 우리가보고있는 것처럼 자동으로 날짜 간격을 처리합니다 행은 이전 N 행 대신 날짜 범위 내에 있습니다. SQL Server 롤링 평균. SQL Server에는 창 함수가 있으므로 롤링 평균 계산은 Postgres 스타일 또는 MySQL 스타일에서 수행 할 수 있습니다. 간단히하기 위해 MySQL versi 이 기능은 MySQL과 개념적으로 동일합니다. 유일한 번역은 dateadd 함수와 명시 적으로 열로 그룹화 된 것입니다. 다른 평균값. 이 게시물의 7 일간의 평균에 초점을 맞추 었습니다. 7 일간의 평균, 그것은 다른 방향으로 날짜를 정렬하는 것만 큼 간단합니다. 우리가 중심 평균을보고 싶다면, MySQL은 3과 3 사이의 다음 행을지지합니다. MySQL은 - 3에서 3 사이입니다. dateadd day, -3 및 dateadd day 사이의 SQL Server 3. 이동 평균을 계산하려고 SQL Server 2008 R2에서 작업하고 있습니다. 내 레코드의 각 레코드에 대해 250 개의 이전 레코드 값을 수집하고 싶습니다. 이 선택 항목에 대한 평균을 계산합니다. 내보기 열은 다음과 같습니다. 트랜잭션 ID는 고유합니다. 각 TransactionID에 대해 이전 250 개 레코드의 열 값 평균을 계산합니다. 따라서 TransactionID 300의 경우 이전 250 개의 행에서 모든 값을 수집합니다. Transacti에 의해 내림차순 정렬 됨 onID 및 다음에 MovAvg 열에서 레코드 범위 내에서 데이터를 수집하려고하는이 값의 평균 결과를 작성합니다. 10 월 28 일 14시 20 분 58 초. 이것은 DBMS 플랫폼이 사용되는 Evergreen Joe Celko 질문입니다. 어쨌든 Joe는 10 년 전에 표준 SQL로 대답 할 수있었습니다. Joe Celko SQL Puzzles and Answers 인용문 마지막 업데이트 시도는 우리가 이동 평균을 제공하는 쿼리를 작성하기 위해 술어를 사용할 수 있다고 제안합니다. 열 또는 쿼리 방식이 더 좋습니다. UPDATE 방식으로 데이터베이스를 비정규 화합니다. 그러나 기록되는 기록 데이터가 변경되지 않고 이동 평균을 계산하는 데 많은 비용이 소요되는 경우 열 접근 방식을 사용하는 것이 좋습니다. SQL Puzzle query. by는 모두 통일 된 것을 의미합니다. 현재 시간 지점으로부터의 거리에 따라 적절한 체중 버킷에 던지십시오. 예를 들어 현재 데이터 포인트에서 24 시간 이내에 데이터 포인트에 대해 가중치 1을 취하십시오. 48 시간 내에 데이터 포인트를위한 가중치 0 5 6 12am과 11 48pm과 같은 연속적인 데이터 포인트가 서로 얼마나 멀리 떨어져 있는지 문제가 있습니다. 데이터 포인트가 충분히 조밀하지 않은 곳에서는 히스토그램을 부드럽게 만들기위한 시도라고 생각할 수있는 유스 케이스 msciwoj 5 월 27 일 15 22 22 예기치 않은 결과가 3 일 동안의 단순한 평균 이동 평균을 보여줄지 확신하지 못합니다. 예를 들어, 정의에 의한 첫 번째 트리플 수가 제공되기 때문입니다. 그러나 4 360을 예상하고 혼란 스럽습니다. 그럼에도 불구하고 창 함수 AVG를 사용하는 다음 솔루션을 제안하십시오. 이 접근법은 다른 답변에서 소개 된 SELF-JOIN보다 훨씬 더 명확하고 자원 집약적 인 방법입니다. 아무도 더 나은 솔루션을 제공하지 못함에 놀랐습니다. AVG가 래핑 된 것을 볼 수 있습니다 경우 rownum 다음 첫 번째 행에 NULL을 강제로 어디 3 일 이동 평균은 의미가 없습니다. 대답 2 월 23 일 16시 13 분 12.We 조에 Celko을 적용 할 수 있습니다 위에서 언급 한 디에고 Scaravaggi에 의해 답변으로 더러운 왼쪽 외부 조인 방법 요청 된 결과를 생성합니다. 1 월 9 일 16시 33 분에 회신합니다. 답변 2011 년 Stack Exchange, Inc.
드라이버에는 BSON 문서를 나타내는 데 사용되는 여러 클래스와 인터페이스가 포함되어 있습니다. 일반적으로 고급 드라이버 API를 사용하지 않아도되지만 BsonDocument 클래스는 문서가 드라이버에서 내부적으로 관리되는 방식의 핵심입니다. BsonDocument 클래스는 동적으로 구조화 된 임의의 복잡성이있는 문서 (형식이 안전한 API 사용) 예를 들어 문서는 다음과 같이 BsonDocument로 생성 될 수 있습니다. 유형 안전성은 Map String, BsonValue를 구현하는 BsonDocument에서 비롯되므로 int String 및 List와 같은 기본 제공 유형도 포함해야합니다. BsonValue의 하위 클래스에서 BsonValue 하위 유형의 전체 목록을 보려면 BsonValue API 문서를 참조하십시오. 대부분의 응용 프로그램은 BsonDocument와 마찬가지로 Document 클래스를 사용하지만 문서 클래스는 복잡성이있는 동적으로 구조화 된 문서를 나타낼 수 있습니다. 문서가 Map String, Object를 구현할 때 훨씬 느슨해 짐 결과로 위와 같은 문서는 D ocument 클래스는 다음과 같이 작성할 수 있습니다. 작성할 코드가 적지 만, 실수로 지원되지 않는 값 유형의 인스턴스를 추가하면 런타임 오류가 발생할 수 있습니다. 가장 일반적으로 사용되는 값 유형은 다음과 같습니다. 실제로 이러한 매핑을 변경하는 메커니즘이 가능합니다 새 응용 프로그램에는 권장되지 않지만 2 x 드라이버 시리즈에서 업그레이드하는 경우 DBObject 인터페이스를 사용하여 BSON 문서를 계속 사용할 수 있습니다. DBObject는 BSON 값을 Object로 나타내지 만 문서와 비슷하지만 그것을 극복하기가 불가능한 몇 가지 결점이있었습니다. 그것은 클래스가 아닌 인터페이스이기 때문에 API는 바이너리 호환성을 손상시키지 않고 확장 될 수 없습니다. 실제로 Map String, Object를 구현하지 않습니다. 인터페이스이기 때문에 별도의 구체적인 클...
Comments
Post a Comment