ホームページ データベース mysql チュートリアル 【原创】POSTGRESQL交叉表的实现

【原创】POSTGRESQL交叉表的实现

Jun 07, 2016 pm 04:46 PM
postgresql

这里我来演示下在POSTGRESQL里面如何实现交叉表的展示,至于什么是交叉表,我就不多说了,度娘去哦。原始表数据如下:t_girl=#select*fromscore;name|subject&n.

这里我来演示下在POSTGRESQL里面如何实现交叉表的展示,至于什么是交叉表,我就不多说了,度娘去哦。

原始表数据如下:

t_girl=# select * from score;  name  | subject | score  -------+---------+-------  Lucy  | English |   100  Lucy  | Physics |    90  Lucy  | Math    |    85  Lily  | English |    95  Lily  | Physics |    81  Lily  | Math    |    84  David | English |   100  David | Physics |    86  David | Math    |    89  Simon | English |    90  Simon | Physics |    76  Simon | Math    |    79 (12 rows) Time: 2.066 ms

想要实现以下的结果:

 name  | English | Physics | Math  -------+---------+---------+------  Simon |      90 |      76 |   79  Lucy  |     100 |      90 |   85  Lily  |      95 |      81 |   84  David |     100 |      86 |   89

大致有以下几种方法:


1、用标准SQL展现出来

t_girl=# select name,  t_girl-#  sum(case when subject = 'English' then score else 0 end) as "English", t_girl-#  sum(case when subject = 'Physics' then  score else 0 end) as "Physics", t_girl-#  sum(case when subject = 'Math'   then score else 0 end) as "Math"  t_girl-#  from score t_girl-#  group by name order by name desc;  name  | English | Physics | Math  -------+---------+---------+------  Simon |      90 |      76 |   79  Lucy  |     100 |      90 |   85  Lily  |      95 |      81 |   84  David |     100 |      86 |   89 (4 rows) Time: 1.123 ms


2、用PostgreSQL 提供的第三方扩展 tablefunc 带来的函数实现

以下函数crosstab 里面的SQL必须有三个字段,name, 分类以及分类值来作为起始参数,必须以name,分类值作为输出参数。

t_girl=# SELECT * FROM crosstab('select name,subject,score from score order by name desc',$$values ('English'::text),('Physics'::text),('Math'::text)$$) AS score(name text, English int, Physics int, Math int);  name  | english | physics | math  -------+---------+---------+------  Simon |      90 |      76 |   79  Lucy  |     100 |      90 |   85  Lily  |      95 |      81 |   84  David |     100 |      86 |   89 (4 rows) Time: 2.059 ms


3、用PostgreSQL 自身的聚合函数实现

t_girl=# select name,split_part(split_part(tmp,',',1),':',2) as "English", t_girl-# split_part(split_part(tmp,',',2),':',2) as "Physics", t_girl-# split_part(split_part(tmp,',',3),':',2) as "Math" t_girl-# from t_girl-# ( t_girl(# select name,string_agg(subject||':'||score,',') as tmp from score group by name order by name desc t_girl(# ) as T;  name  | English | Physics | Math  -------+---------+---------+------  Simon | 90      | 76      | 79  Lucy  | 100     | 90      | 85  Lily  | 95      | 81      | 84  David | 100     | 86      | 89 (4 rows) Time: 2.396 ms



このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQL と PostgreSQL: Web 開発のベスト プラクティス MySQL と PostgreSQL: Web 開発のベスト プラクティス Jul 14, 2023 pm 02:34 PM

MySQL と PostgreSQL: Web 開発のベスト プラクティス はじめに: 現代の Web 開発の世界では、データベースは不可欠なコンポーネントです。データベースを選択する場合、一般的な選択肢は MySQL と PostgreSQL です。この記事では、Web 開発で MySQL と PostgreSQL を使用するためのベスト プラクティスについて説明し、いくつかのコード例を示します。 1. 適用可能なシナリオ MySQL は、ほとんどの Web アプリケーション、特に高いパフォーマンス、スケーラビリティ、使いやすさを必要とするアプリケーションに適しています。

MySQL と PostgreSQL: パフォーマンスの比較と最適化のヒント MySQL と PostgreSQL: パフォーマンスの比較と最適化のヒント Jul 13, 2023 pm 03:33 PM

MySQL と PostgreSQL: パフォーマンスの比較と最適化のヒント Web アプリケーションを開発する場合、データベースは不可欠なコンポーネントです。データベース管理システムを選択する場合、MySQL と PostgreSQL の 2 つが一般的な選択肢となります。これらはどちらもオープンソースのリレーショナル データベース管理システム (RDBMS) ですが、パフォーマンスと最適化にはいくつかの違いがあります。この記事では、MySQL と PostgreSQL のパフォーマンスを比較し、最適化のヒントをいくつか紹介します。 2 つのデータベース管理を比較したパフォーマンスの比較

Go 言語でデータベース関数を学習し、PostgreSQL データの追加、削除、変更、クエリ操作を実装します。 Go 言語でデータベース関数を学習し、PostgreSQL データの追加、削除、変更、クエリ操作を実装します。 Jul 31, 2023 pm 12:54 PM

Go 言語でデータベース関数を学習し、PostgreSQL データの追加、削除、変更、クエリ操作を実装する現代のソフトウェア開発において、データベースは不可欠な部分です。 Go 言語は強力なプログラミング言語として、データベースの追加、削除、変更、クエリ操作を簡単に実装できる豊富なデータベース操作関数とツールキットを提供します。この記事では、Go言語でデータベース機能を学び、実際の運用でPostgreSQLデータベースを利用する方法を紹介します。ステップ 1: 各データベースに Go 言語でデータベース ドライバーをインストールする

Go での PostgreSQL の使用: 完全ガイド Go での PostgreSQL の使用: 完全ガイド Jun 18, 2023 am 09:28 AM

Go 言語は、Web サービスやバックエンド アプリケーションの構築に適した高速かつ効率的なプログラミング言語です。 PostgreSQL は、より高い信頼性、拡張性、データ セキュリティを提供するオープンソースのリレーショナル データベース管理システムです。この記事では、Go での PostgreSQL の使用について詳しく説明し、いくつかの実用的なコード例とヒントを提供します。 PostgreSQL のインストールとセットアップ まず、PostgreSQL をインストールしてセットアップする必要があります。公式ウェブサイトでご覧いただけます

MySQL と PostgreSQL: データ セキュリティとバックアップ戦略 MySQL と PostgreSQL: データ セキュリティとバックアップ戦略 Jul 13, 2023 pm 03:31 PM

MySQL と PostgreSQL: データ セキュリティとバックアップ戦略 はじめに: 現代社会では、データはビジネスと個人の生活に不可欠な部分になっています。データベース管理システムでは、データを損失や損傷から保護し、回復されたデータの信頼性と整合性を確保するために、データ セキュリティとバックアップ戦略が非常に重要です。この記事では、2 つの主流のリレーショナル データベース システム、MySQL と PostgreSQL のデータ セキュリティとバックアップ戦略に焦点を当てます。 1. データセキュリティ: (1) ユーザーの権利

PHP プログラミングで PostgreSQL データベースを使用するにはどうすればよいですか? PHP プログラミングで PostgreSQL データベースを使用するにはどうすればよいですか? Jun 12, 2023 am 09:27 AM

データベース技術の発展に伴い、データベース管理システムにもさまざまな選択肢があり、開発者はニーズや好みに応じて最適なデータベースを選択できます。高度なオープンソース リレーショナル データベース システムとして、PostgreSQL は開発者によってますます注目され、使用されています。では、PHP プログラミングで PostgreSQL データベースを使用するにはどうすればよいでしょうか? 1. PostgreSQL データベースのインストールと設定 PostgreSQL を使用する前に、PostgreSQL データベースをインストールして設定する必要があります。初め

MySQL と PostgreSQL: データベース クエリのパフォーマンスを最適化するには? MySQL と PostgreSQL: データベース クエリのパフォーマンスを最適化するには? Jul 12, 2023 pm 03:15 PM

MySQL と PostgreSQL: データベース クエリのパフォーマンスを最適化するには?概要: データベース クエリのパフォーマンスは、アプリケーションを開発する際の重要な考慮事項です。クエリのパフォーマンスが優れていると、アプリケーションの応答性とユーザー エクスペリエンスが向上します。この記事では、一般的に使用される 2 つのデータベース、MySQL と PostgreSQL に焦点を当てて、データベース クエリのパフォーマンスを最適化する方法をいくつか紹介します。データベース インデックスの最適化: データベース インデックスは、クエリのパフォーマンスを向上させる重要な要素です。インデックスを使用すると、データ検索が高速化され、クエリのスキャン時間が短縮されます。

PHP はオープンソースの PostgreSQL リレーショナル データベースを実装します PHP はオープンソースの PostgreSQL リレーショナル データベースを実装します Jun 18, 2023 am 08:40 AM

インターネットの発展に伴いデータ量は増加し続けており、データ管理の必要性はますます高まっています。リレーショナル データベースはデータ管理の重要な方法であり、その中でも PostgreSQL はその柔軟性、拡張性、セキュリティの点で人気があります。この記事では、PHP 言語を使用してオープン ソースの PostgreSQL リレーショナル データベースを実装する方法を紹介します。これが、対応するニーズを持つ開発者の役に立つことを願っています。概要 PostgreSQL は、SQL 標準に準拠した強力なリレーショナル データベース システムであり、多くの機能を備えています。

See all articles