結合を追加して、1つのテーブル内で2つの合計を取得しようとしています

bob_cobb

私が持っているsubmissionsテーブルを、それに持って提出されているtypeいずれかtipまたはrequest

特定のユーザーのすべての送信を取得しようとしています(ダッシュボードにすべてのアクティビティの集計として表示するため)。

例えばYou have submitted: 5 requests and 1 tip

私の提出物作成テーブルは次のようになります。

       Table: submissions
Create Table: CREATE TABLE `submissions` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `description` mediumtext NOT NULL,
  `user_id` int(11) NOT NULL,
  `created` datetime NOT NULL,
  `type` enum('tip','request') NOT NULL,
  `thumbnail` varchar(64) CHARACTER SET latin1 DEFAULT NULL,
  `removed` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `keywords` varchar(255) NOT NULL,
  `ip` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`),
  FULLTEXT KEY `search` (`title`,`description`,`keywords`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

私はその作品1つのクエリで上がってきた私に、ユーザーの提出の量を与えるが、各提出(戻ってくる行)ので、いずれかのようなタイプが保存されますtiprequestだから私は今その情報を集約する方法を理解しようとしています。

すべてtipのを含むユーザーを返す私のクエリrequestもsのためにそれをやろうとしています。

SELECT users.*, count(submissions.id) 
AS "tipsCount" 
FROM users 
LEFT JOIN submissions on users.id = submissions.user_id 
WHERE username = 'blahbster' 
AND submissions.type = 'tip' 
ORDER BY submissions.created DESC 
LIMIT 1;

おそらくここで合計を使用できますか?私の試み:

SELECT users.*, 
SUM(case when type = 'tip' then 1 else 0 end) as "tipsCount"
SUM(case when type = 'request' then 1 else 0 end) as "requestsCount"
FROM users 
LEFT JOIN submissions on users.id = submissions.user_id 
WHERE username = 'blahbster' 
ORDER BY submissions.created DESC 
LIMIT 1;
エヴァン・ヴォルガス
SELECT a.username, b.type,
SUM(case when b.type = 'tip' then 1 else 0 end) as "tipsCount",
SUM(case when b.type = 'request' then 1 else 0 end) as "requestsCount"
FROM users as a
LEFT JOIN submissions as b
ON a.id = b.user_id 
GROUP BY a.username, b.type; 

あなたが持っていた2番目のクエリは近いものでした...しかし、それは特定のユーザーの合計のヒントと合計のリクエストを集約していませんでした。合計は何も計算されませんでした。つまり、GROUPBYはありませんでした。上記のクエリが役立つはずです。必要に応じて、WHEREフィルターを追加し直すこともできます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MySqlで2つのテーブルを完全結合しようとしています

分類Dev

LINQで2つのテーブルを結合しようとしています

分類Dev

テーブルの複数の行を1つの行に結合しようとしています

分類Dev

複数のテーブルを結合しながら、1つのテーブルからAVGを取得しようとしています

分類Dev

2つのテーブルを結合し、1つの集計と一意の値を取得します

分類Dev

外部キーを使用して1つのステートメントで複数のMYSQLテーブルを結合しようとしています

分類Dev

MySQlの問題、3つのテーブルで左外部結合を実行しようとしています

分類Dev

2つの異なるテーブルから列を結合しようとしています

分類Dev

これらの2つのテーブルを結合/結合して、1つの結果を得るにはどうすればよいですか?

分類Dev

SQL Server:2つのテーブルを結合してビューを作成し、新しい列で2つの列の合計を見つけます

分類Dev

2つのSelectCase関数を1つのForループ引数に結合しようとしています

分類Dev

zipで2つのテーブルを結合しようとしています-1つのテーブルには先行ゼロがなく、もう1つのテーブルには先行ゼロがあります

分類Dev

Excelで、2つの合計のパーセンテージを計算しようとしています

分類Dev

2つのテーブルを結合しようとすると、合計が正しくありません

分類Dev

postgres: 条件に基づいて 4 つのテーブルを結合しようとしています

分類Dev

2つのテーブルを結合し、2つに基づいて値を計算します

分類Dev

2つのテーブルを結合し、2つの行を1つの行として表示したい

分類Dev

LINQ:データをプルして、関係が異なる3つのテーブル(1対1、1対多)を結合しようとしています

分類Dev

結合とgroupbyを使用して、2つのテーブルを1行に結合します

分類Dev

3つのテーブルを結合して、値の1つに値がない値を取得します

分類Dev

2つのテーブルの列を合計してから、テーブルを結合します

分類Dev

内部結合と2つの外部キーを使用して2つのテーブルを結合します

分類Dev

Javaで2つのテーブルを結合しようとしていますが、エラーが発生します

分類Dev

3つのテーブルとの結合を使用して、mysqlで顧客ごとに費やされた合計金額を計算しています

分類Dev

複数のテーブルから1つの列を取得して、1つのリストに結合するにはどうすればよいですか?

分類Dev

Oracleの2つのテーブルを合計して結合する

分類Dev

2つのgroupbyクエリを1つに結合して、SQLServer内の両方のテーブルのレコードのカウントを取得します

分類Dev

PHPは複数のテーブルの列を合計し、1つの合計として返します

分類Dev

最大値を持つテーブルを取得して2つのテーブルを結合します

Related 関連記事

  1. 1

    MySqlで2つのテーブルを完全結合しようとしています

  2. 2

    LINQで2つのテーブルを結合しようとしています

  3. 3

    テーブルの複数の行を1つの行に結合しようとしています

  4. 4

    複数のテーブルを結合しながら、1つのテーブルからAVGを取得しようとしています

  5. 5

    2つのテーブルを結合し、1つの集計と一意の値を取得します

  6. 6

    外部キーを使用して1つのステートメントで複数のMYSQLテーブルを結合しようとしています

  7. 7

    MySQlの問題、3つのテーブルで左外部結合を実行しようとしています

  8. 8

    2つの異なるテーブルから列を結合しようとしています

  9. 9

    これらの2つのテーブルを結合/結合して、1つの結果を得るにはどうすればよいですか?

  10. 10

    SQL Server:2つのテーブルを結合してビューを作成し、新しい列で2つの列の合計を見つけます

  11. 11

    2つのSelectCase関数を1つのForループ引数に結合しようとしています

  12. 12

    zipで2つのテーブルを結合しようとしています-1つのテーブルには先行ゼロがなく、もう1つのテーブルには先行ゼロがあります

  13. 13

    Excelで、2つの合計のパーセンテージを計算しようとしています

  14. 14

    2つのテーブルを結合しようとすると、合計が正しくありません

  15. 15

    postgres: 条件に基づいて 4 つのテーブルを結合しようとしています

  16. 16

    2つのテーブルを結合し、2つに基づいて値を計算します

  17. 17

    2つのテーブルを結合し、2つの行を1つの行として表示したい

  18. 18

    LINQ:データをプルして、関係が異なる3つのテーブル(1対1、1対多)を結合しようとしています

  19. 19

    結合とgroupbyを使用して、2つのテーブルを1行に結合します

  20. 20

    3つのテーブルを結合して、値の1つに値がない値を取得します

  21. 21

    2つのテーブルの列を合計してから、テーブルを結合します

  22. 22

    内部結合と2つの外部キーを使用して2つのテーブルを結合します

  23. 23

    Javaで2つのテーブルを結合しようとしていますが、エラーが発生します

  24. 24

    3つのテーブルとの結合を使用して、mysqlで顧客ごとに費やされた合計金額を計算しています

  25. 25

    複数のテーブルから1つの列を取得して、1つのリストに結合するにはどうすればよいですか?

  26. 26

    Oracleの2つのテーブルを合計して結合する

  27. 27

    2つのgroupbyクエリを1つに結合して、SQLServer内の両方のテーブルのレコードのカウントを取得します

  28. 28

    PHPは複数のテーブルの列を合計し、1つの合計として返します

  29. 29

    最大値を持つテーブルを取得して2つのテーブルを結合します

ホットタグ

アーカイブ