0

個別の 1 つの列 (ユーザー) を選択して、この 1 つの列に基づいて残りのフィールドを出力するにはどうすればよいですか?

入力:

  user     age      country
--------------------------------
  Tom      34        US
  Tom      32        EN
  Dick     29        MX
  Dick     29        DE
  Harry    15        CA

出力 (個別のユーザー列、および残りのフィールドの出力に 1 つの行を選択):

  user     age      country    count
--------------------------------------
  Tom      34        US         2
  Dick     29        MX         2
  Harry    15        CA         1

どんな助けでも大歓迎です!

4

2 に答える 2

1
SELECT USER, AGE, MAX(COUNTRY), COUNT(*) 
FROM TABLE
GROUP BY USER, AGE

MAXを a に変更してみてくださいMIN。ここはいらないDISTINCT。のようなデータ形式を使用することもできますがSUBSTRING、残りのデータが常に US や USS などになるかどうかはわかりません。いくつかの間違ったクエリ結果が発生します。

コメントと更新によると。

SELECT USER, MAX(AGE), MAX(COUNTRY), COUNT(*)
FROM TABLE
GROUP BY USER.
于 2013-09-24T01:32:41.333 に答える
0
SELECT user, age, country, COUNT(*) AS c_rec FROM
(
SELECT DISTINCT user, age, SUBSTRING(country, 1, 2) AS country FROM yourTable
) T
GROUP BY user, age, country
于 2013-09-24T01:28:23.227 に答える