SQL:选择不同的一列但包括所有字段

时间:2013-09-24 01:23:06

标签: sql

如何选择不同的一列(用户),然后根据这一列输出其余字段?

输入:

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

输出(不同的用户列,并为其余字段选择一行输出):

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

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

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

您可以尝试更改MAX的{​​{1}}。这里不需要MIN。 您可以使用某些数据格式,例如DISTINCT,但我不确定其余数据是否总是像美国和USS等。如果您有超过2/3或者更改开始超出,请购买特定字符,您可能会遇到一些错误的查询结果。

根据评论和更新。

SUBSTRING

答案 1 :(得分: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