タグ付けされた質問 「pivot」

ピボット(またはクロス集計)は、行データを列データに変換し、ピボットを解除するとその逆になります。すべてのデータベースが明示的なPIVOT構文をサポートしているわけではありませんが、多くの場合、決定ロジック(CASEステートメントなど)、集約関数、または拡張機能を使用して、機能を実装できます。

3
行を複数の列にピボットする
Oracleサーバーへのリンクサーバーを持つSQL Serverインスタンスがあります。PersonOptions次のデータを含む、呼び出されたOracleサーバー上のテーブルがあります。 ╔══════════╦══════════╗ ║ PersonID ║ OptionID ║ ╠══════════╬══════════╣ ║ 1 ║ A ║ ║ 1 ║ B ║ ║ 2 ║ C ║ ║ 3 ║ B ║ ║ 4 ║ A ║ ║ 4 ║ C ║ ╚══════════╩══════════╝ 結果が次のようになるように、そのデータをピボットする必要があります。 ╔══════════╦═════════╦══════════╦══════════╗ ║ PersonID ║ OptionA ║ Option B ║ …

3
ディメンションの範囲を動的に定義する
キューブを作成するたびに直面する問題があり、それを克服する方法をまだ見つけていません。 問題は、ディメンション内でハードコードすることなく、ユーザーがさまざまなものを自動的に定義できるようにする方法です。例で問題を説明します。 Customersというテーブルがあります: これはテーブル内のデータです。 ピボットスタイルでデータを表示し、以下のように定義された範囲で給与と年齢をグループ化します。 このスクリプトを作成し、範囲を定義しました。 SELECT [CustId] ,[CustName] ,[Age] ,[Salary] ,[SalaryRange] = case when cast(salary as float) <= 500 then '0 - 500' when cast(salary as float) between 501 and 1000 then '501 - 1000' when cast(salary as float) between 1001 and 2000 then '1001 - 2000' when cast(salary …

4
結果のテーブル定義が不明なピボットCROSS JOINを生成するにはどうすればよいですか?
名前と値を持つ未定義の行数を持つ2つのテーブルがある場合、CROSS JOINそれらの値に対して関数のピボットをどのように表示しますか。 CREATE TEMP TABLE foo AS SELECT x::text AS name, x::int FROM generate_series(1,10) AS t(x); CREATE TEMP TABLE bar AS SELECT x::text AS name, x::int FROM generate_series(1,5) AS t(x); たとえば、その関数が乗算である場合、以下のような(乗算)テーブルをどのように生成しますか? これらの(arg1,arg2,result)行はすべて、次を使用して生成できます。 SELECT foo.name AS arg1, bar.name AS arg2, foo.x*bar.x AS result FROM foo CROSS JOIN bar; したがって、これは表示の問題にすぎません。これは、カスタム名(CASTテキストへの単なる引数ではなくテーブルに設定された名前) CREATE TEMP …

3
範囲内の日付ごとに列を返します
表Aを持っているとしましょう:BookingsPerPerson Person_Id ArrivalDate DepartureDate 123456 2012-01-01 2012-01-04 213415 2012-01-02 2012-01-07 ビューで達成する必要があるのは次のとおりです。 Person_Id ArrivalDate DepartureDate Jan-01 Jan-02 Jan-03 Jan-04 Jan-05 Jan-06 Jan-07 123456 2012-01-01 2012-01-04 1 1 1 1 213415 2012-01-02 2012-01-07 1 1 1 1 1 1 システムはイベント用であるため、各ホテルの予約には1〜15日かかりますが、それ以上はかかりません。どんなアイデアでも大歓迎です。

3
同じテーブルの異なる列のカウントを取得する方法
表#01 Status: StatusID Status ----------------------- 1 Opened 2 Closed 3 ReOpened 4 Pending 表#02 Claims: ClaimID CompanyName StatusID -------------------------------------- 1 ABC 1 2 ABC 1 3 ABC 2 4 ABC 4 5 XYZ 1 6 XYZ 1 期待される結果: CompanyName TotalOpenClaims TotalClosedClaims TotalReOpenedClaims TotalPendingClaims -------------------------------------------------------------------------------- ABC 2 1 0 1 XYZ …
14 sql-server  pivot 

2
PIVOTクエリのヘルプ
私は以下の構造を持つテーブルを持っています: CREATE TABLE [dbo].[AUDIT_SCHEMA_VERSION]( [SCHEMA_VER_MAJOR] [int] NOT NULL, [SCHEMA_VER_MINOR] [int] NOT NULL, [SCHEMA_VER_SUB] [int] NOT NULL, [SCHEMA_VER_DATE] [datetime] NOT NULL, [SCHEMA_VER_REMARK] [varchar](250) NULL ); いくつかのサンプルデータ(sqlfiddleに問題があるようです。 INSERT INTO [AUDIT_SCHEMA_VERSION]([SCHEMA_VER_MAJOR],[SCHEMA_VER_MINOR],[SCHEMA_VER_SUB],[SCHEMA_VER_DATE],[SCHEMA_VER_REMARK]) VALUES(1,6,13,CAST('20130405 04:41:25.000' as DATETIME),'Stored procedure build') INSERT INTO [AUDIT_SCHEMA_VERSION]([SCHEMA_VER_MAJOR],[SCHEMA_VER_MINOR],[SCHEMA_VER_SUB],[SCHEMA_VER_DATE],[SCHEMA_VER_REMARK]) VALUES(1,6,13,CAST('20130405 04:41:25.000' as DATETIME),'Stored procedure build') INSERT INTO [AUDIT_SCHEMA_VERSION]([SCHEMA_VER_MAJOR],[SCHEMA_VER_MINOR],[SCHEMA_VER_SUB],[SCHEMA_VER_DATE],[SCHEMA_VER_REMARK]) VALUES(1,7,13,CAST('20130405 04:41:25.000' as DATETIME),'Stored …

2
動的SQL(ピボットクエリ)をxml出力に変換するときに、日付の最初の桁がUnicodeに変換されるのはなぜですか?
Bluefeetのこの素晴らしい例/dba//a/25818/113298を使用して、ピボットを作成し、それをxmlデータに変換しています。 パラメータの宣言 DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX); 次に、多くのコードを含むCTEがあり、CTEの最終結果が一時DBに配置されます(例と同じ)。 SELECT B.[StayDate] -- this is a date dd-mm-yyyy , B.[Guid] INTO #tempDates FROM BaseSelection B colsの生成(例と同じ) SELECT @cols = STUFF((SELECT distinct ',' +QUOTENAME(convert(char(10), [StayDate] , 120)) FROM #tempDates FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,''); 結果セットは私が期待すべきものです set @query = 'SELECT …
11 sql-server  xml  pivot 

5
自己結合の代替
私はここで質問をしました:https: //stackoverflow.com/questions/43807566/how-to-divide-two-values-from-the-same-column-but-at-different-rows 同じ列の異なる行にある同じテーブルの値の分割について。今、私はより多くの分子と分母(異なるuns)を持っているという問題を抱えています。self joinPostgresでこの問題を解決する良い方法はまだありますか、それともより良い解決策がありますか? 例: | postcode | value | uns | |----------|-------|-----| | AA | 40 | 53 | | BB | 20 | 53 | | AA | 10 | 54 | | AA | 20 | 55 | | AA | 10 | 56 | | AA …

2
LIKEステートメントでPIVOTすることは可能ですか
テーブルの要素(などCOLUMN LIKE='Value%')でグループ化することはできPIVOTますか?(データベース、インスタンスなどの)さまざまなステータスを含むテーブル[DBT]。[Status]があり、すべてのPRODとTESTの値を単一の値としてピボット/クエリしたくありませんが、それらをグループ化します。 例えば、代わりにステータスの列を有しているとProd、Prod ACC、Prod APP、...など私はのための値を含む1列のみであろうName LIKE 'Prod%'としName LIKE 'Test%'。 これまでのところ: テーブル定義 CREATE TABLE [DBT].[Status]( [ID] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) NOT NULL, CONSTRAINT [PK_Status] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) …

2
2つの関連する「多数」のテーブルがあるテーブルの結果をフラット化する方法は?
データベース内のいくつかのテーブルをより柔軟に再編成しましたが、SQLを記述してそこから意味のあるデータを抽出する方法がよくわかりません。 次の表があります(より明確な例のために多少省略しています)。 CREATE TABLE Loans( Id int, SchemaId int, LoanNumber nvarchar(100) ); CREATE TABLE SchemaFields( Id int, SchemaId int, FieldName nvarchar(255) ); CREATE TABLE LoanFields( Id int, LoanId int, SchemaFieldId int, FieldValue nvarchar(4000) ); 次のデータで: INSERT INTO Loans (Id, SchemaId, LoanNumber) VALUES (1, 1, 'ABC123'); INSERT INTO SchemaFields (Id, SchemaId, …

2
ピボットの列として定期的な平日を作成するにはどうすればよいですか?
私はプログラミングとデータベースの初心者であり、次のシナリオでいくつかの助けに感謝します。 SQL ServerでPHPを使用しています。私は従業員の出席システムを構築しています。月を行、すべての曜日名を列(特定の年)として(ピボット)テーブルを作成したいと考えています。セルの値は日数です(1、2、3 ... 31)。 セルの背景色(テーブル列として既に存在)は、従業員の休暇のタイプを宣言します。テーブルには次の列がありますemployee_id, leave_date, leave_type, leave_type_color。 以下のような結果を達成したい: ありがとうございました。
8 sql-server  php  pivot 

2
複数の行データを複数の列を持つ行に取得する方法
次のようなMySQLテーブルがあります。 User_Id course_name course_location course_id 1 course name 1 location 1 1 1 course name 2 location 2 2 1 course name 3 location 1 3 2 course name 2 location 1 2 2 course name 4 location 4 4 次のような結果をデータで取得するにはどうすればよいですか。 User_id course 1 course2 course3 course4 1 yes-location1 yes-location2 …
8 mysql  pivot 

1
MySqlで月次出席レポートを表示する
Mysql DBを使用して、phpで学校管理システムを実行しています。プロジェクトで立ち往生しています。誰かが私が間違っていることを提案してください。 データベースに2つのテーブルがあります。1つはStudentsレコードを保存すること、もう1つはattendance日ごとに保存することです 今、私は今月の特定のクラスのすべての学生のレポートを表示したいと思います。ただし、欠席している学生の詳細のみを出席表でのみキャプチャしています。 ここに結果を表示するSQLクエリを作成しました。 SELECT tab.class, attend, DATE, ta.rollno, ta.StdNm FROM tbl_absentees tab, tbl_admission ta WHERE ta.Cls = class AND ta.rollno = tab.rollno AND class =22 AND attend = 'A' AND DATE = '2013-06-07'; 結果は次のとおりです。 Class Attend RollNo StudentName しかし、出席= Aの場合は出席表の日付のみを取り、31日の表の方法で表示したいのですが、欠席の場合はAを表示し、それ以外の場合は残りの日には「P」を表示します mysqlでこれを行うにはどうすればよいですか?誰かがこれを達成するためのアイデアを私に提案/提供できますか? 私の質問を誤解して申し訳ありません。実際には、データが2つのテーブルから取得される特定の月の出席レポートを表示したいと思います。 最初のテーブルは、StudentName、RollNo、Classで構成されています 2番目のテーブルは、日付、ステータス、RollNo、クラスで構成されます このようなレポートを表示したいのですが。
8 mysql  pivot 

3
MySQL単一テーブルの静的および動的ピボット
次のようなテーブルがあります。 +----------------------------------------+ |Name | kode | jum | +----------------------------------------+ | aman |kode1 | 2 | | aman |kode2 | 1 | | jhon |kode1 | 4 | | amir |kode2 | 4 | +--------------------+-----------+-------+ MySQLでこのようなビューを作成するにはどうすればよいですか? kode1 kode2 count aman 2 1 3 jhon 0 4 4 amir 0 4 4
8 mysql  pivot 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.