タグ付けされた質問 「group-by」

GROUP BYは、SQLリレーショナルデータベース標準のコマンドで、共通のフィールド値を共有する行のグループを単一の行に折りたたみます。SUM()やAVG()など、グループ内の他のフィールドで集計関数を実行して、関連するデータを単一の値に照合できます。

7
GROUP BY句で使用するか、集計関数で使用する必要があります
この発信者「makerar」のようなテーブルがあります cname | wmname | avg --------+-------------+------------------------ canada | zoro | 2.0000000000000000 spain | luffy | 1.00000000000000000000 spain | usopp | 5.0000000000000000 そして、各cnameの最大平均を選択します。 SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname; エラーになりますが ERROR: column "makerar.wmname" must appear in the GROUP BY clause or be used in an aggregate function …

15
MySQLではSELECT DISTINCTまたはGROUP BYのどちらが速いですか?
テーブルがあれば CREATE TABLE users ( id int(10) unsigned NOT NULL auto_increment, name varchar(255) NOT NULL, profession varchar(255) NOT NULL, employer varchar(255) NOT NULL, PRIMARY KEY (id) ) そして、私はprofessionフィールドのすべての一意の値を取得したいのですが、何が速くなりますか(または推奨されます): SELECT DISTINCT u.profession FROM users u または SELECT u.profession FROM users u GROUP BY u.profession ?

9
MySQLの前にグループ化する
ここには同様の質問がたくさんありますが、質問に対する適切な回答はないと思います。 私は現在最も人気のある質問から続けて、それが問題なければ、その例を使用します。 このインスタンスのタスクは、データベース内の各著者の最新の投稿を取得することです。 クエリ例では、常に最新の投稿が返されるとは限らないため、使用できない結果が生成されます。 SELECT wp_posts.* FROM wp_posts WHERE wp_posts.post_status='publish' AND wp_posts.post_type='post' GROUP BY wp_posts.post_author ORDER BY wp_posts.post_date DESC 現在受け入れられている答えは SELECT wp_posts.* FROM wp_posts WHERE wp_posts.post_status='publish' AND wp_posts.post_type='post' GROUP BY wp_posts.post_author HAVING wp_posts.post_date = MAX(wp_posts.post_date) <- ONLY THE LAST POST FOR EACH AUTHOR ORDER BY wp_posts.post_date DESC 残念ながら、この答えは明白で単純な誤りであり、多くの場合、元のクエリよりも安定した結果が得られません。 私の最善の解決策は、フォームのサブクエリを使用することです SELECT …

11
同じselectステートメントでcountとgroup byを使用する方法
グループ化されたSQL選択クエリがあります。group byステートメントの後のすべてのレコードをカウントしたい。これをSQLから直接行う方法はありますか?たとえば、さまざまな町とユーザーの総数を選択するユーザーのテーブルがあるとします。 select town, count(*) from user group by town すべての町を含む列と、すべての行のユーザー数を含む列が必要です。 3つの町と合計58人のユーザーがいる場合の結果の例は次のとおりです。 Town Count Copenhagen 58 NewYork 58 Athens 58
223 sql  count  group-by 

3
groupbyおよびcountを使用したLINQ
これはかなり単純ですが、私は途方に暮れています:このタイプのデータセットを考えると: UserInfo(name, metric, day, other_metric) そして、このサンプルデータセット: joe 1 01/01/2011 5 jane 0 01/02/2011 9 john 2 01/03/2011 0 jim 3 01/04/2011 1 jean 1 01/05/2011 3 jill 2 01/06/2011 5 jeb 0 01/07/2011 3 jenn 0 01/08/2011 7 メトリックが順序(0、1、2、3 ..)でカウントされる合計回数とともに一覧表示するテーブルを取得したいと思います。したがって、このセットからは次のようになります。 0 3 1 2 2 2 3 1 私はLINQ構文に取り組んでいますが、groupbyを配置してカウントする場所に行き詰まっています。 POST …
221 c#  linq  group-by 

6
複数の関数を複数のgroupby列に適用する
ドキュメントには、キーとして、出力列名で辞書を使用して、一度にGROUPBYオブジェクト上で複数の機能を適用する方法を示しています。 In [563]: grouped['D'].agg({'result1' : np.sum, .....: 'result2' : np.mean}) .....: Out[563]: result2 result1 A bar -0.579846 -1.739537 foo -0.280588 -1.402938 ただし、これはSeries groupbyオブジェクトでのみ機能します。そして、dictが同様にgroupby DataFrameに渡されると、キーは、関数が適用される列名であると想定します。 私がしたいことは、複数の関数を複数の列に適用することです(ただし、特定の列は複数回操作されます)。また、一部の関数はgroupbyオブジェクトの他の列に依存します(sumif関数など)。私の現在の解決策は、列ごとに行き、上記のコードのようなことをし、他の行に依存する関数にラムダを使用することです。しかし、これには長い時間がかかります(groupbyオブジェクトを反復処理するには長い時間がかかると思います)。一度の実行でgroupbyオブジェクト全体を反復処理するように変更する必要がありますが、これをパンダに幾分きれいに実行する組み込みの方法があるかどうか疑問に思っています。 たとえば、私は次のようなことを試しました grouped.agg({'C_sum' : lambda x: x['C'].sum(), 'C_std': lambda x: x['C'].std(), 'D_sum' : lambda x: x['D'].sum()}, 'D_sumifC3': lambda x: x['D'][x['C'] == 3].sum(), ...) しかし、予想どおり、KeyErrorが発生します(DataFrameからagg呼び出された場合、キーは列である必要があるため)。 私がやりたいことを行うための組み込みの方法はありますか、またはこの機能が追加される可能性がありますか、それとも手動でgroupbyを反復処理する必要があるだけですか? ありがとう


7
パンダのグループ別と合計
私はこのデータフレームを使用しています。 Fruit Date Name Number Apples 10/6/2016 Bob 7 Apples 10/6/2016 Bob 8 Apples 10/6/2016 Mike 9 Apples 10/7/2016 Steve 10 Apples 10/7/2016 Bob 1 Oranges 10/7/2016 Bob 2 Oranges 10/6/2016 Tom 15 Oranges 10/6/2016 Mike 57 Oranges 10/6/2016 Bob 65 Oranges 10/7/2016 Tony 1 Grapes 10/7/2016 Bob 1 Grapes …

6
SQL句の「GROUP BY 1」とはどういう意味ですか?
誰かが私にSQLクエリを送信しましたが、このGROUP BY句は次のステートメントで構成されていますGROUP BY 1。 これはタイプミスである必要がありますか?エイリアス1が指定されている列はありません。これはどういう意味ですか?これはタイプミスであると思いますか?
203 mysql  sql  group-by 

7
MongoDB SELECT COUNT GROUP BY
MongoDBで遊んで、簡単な方法を見つけようとしています SELECT province, COUNT(*) FROM contest GROUP BY province しかし、集約関数を使用してそれを理解することはできないようです。私はいくつかの本当に奇妙なグループ構文を使用してそれを行うことができます db.user.group({ "key": { "province": true }, "initial": { "count": 0 }, "reduce": function(obj, prev) { if (true != null) if (true instanceof Array) prev.count += true.length; else prev.count++; } }); しかし、集約関数を使用するより簡単/高速な方法はありますか?

4
count> 1のレコードを見つけるためのSQLクエリ
というテーブルがありますPAYMENT。このテーブルには、ユーザーID、アカウント番号、郵便番号、日付があります。同じアカウント番号で1日に複数回の支払いがあるすべてのユーザーのすべてのレコードを検索したいと思います。 更新:さらに、郵便番号が異なるレコードのみをカウントするフィルターがあるはずです。 これはテーブルがどのように見えるかです: | user_id | account_no | zip | 日付| | 1 | 123 | 55555 | 12月12日| | 1 | 123 | 66666 | 12月12日| | 1 | 123 | 55555 | 2009年12月13日| | 2 | 456 | 77777 | 2009年12月14日| | 2 | 456 | 77777 | …
176 sql  count  group-by  having 

5
2つのSELECTステートメントの結果を結合する
2つのSQL SELECTステートメントの結果を1つのステートメントに結合することはできますか?タスクのデータベースがあり、各レコードは個別のタスクであり、期限が設定されています(および、開始から期限までの日数 PALTであるa も日数です)。INTAgeINT テーブルに各人がいるテーブル、彼らが持っているタスクの数、LATE彼らが持っているタスクの数(ある場合)が欲しいです。 次のように、このデータを個別のテーブルで簡単に取得できます。 SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks 次のようなデータを返します: ks # Tasks person1 7 person2 3 そして私は持っています: SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks これは次を返します: ks # Late person1 1 person2 1 そして、私はこれらの2つのselectステートメントの結果を結合したいです(KS) …
174 sql  select  join  group-by 

13
時間を1時間または10分でグループ化する方法
私がするときのように SELECT [Date] FROM [FRIIB].[dbo].[ArchiveAnalog] GROUP BY [Date] グループ期間を指定するにはどうすればよいですか? MS SQL 2008 2回目の編集 私はしようとしています SELECT MIN([Date]) AS RecT, AVG(Value) FROM [FRIIB].[dbo].[ArchiveAnalog] GROUP BY (DATEPART(MINUTE, [Date]) / 10) ORDER BY RecT %10を/ 10に変更しました。ミリ秒なしで日付を出力することは可能ですか?

5
グループ内で並べ替えるパンダ
データフレームを2つの列でグループ化し、グループ内の集計結果を並べ替えます。 In [167]: df Out[167]: count job source 0 2 sales A 1 4 sales B 2 6 sales C 3 3 sales D 4 7 sales E 5 5 market A 6 3 market B 7 2 market C 8 4 market D 9 1 market E In [168]: …

5
キーでパンダのグループ化データフレームにアクセスする方法
キーでgroupbyオブジェクトの対応するgroupbyデータフレームにアクセスするにはどうすればよいですか? 次のgroupbyを使用します。 rand = np.random.RandomState(1) df = pd.DataFrame({'A': ['foo', 'bar'] * 3, 'B': rand.randn(6), 'C': rand.randint(0, 20, 6)}) gb = df.groupby(['A']) 反復してキーとグループを取得できます。 In [11]: for k, gp in gb: print 'key=' + str(k) print gp key=bar A B C 1 bar -0.611756 18 3 bar -1.072969 10 5 bar -2.301539 …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.