首页 > 解决方案 > 如何为以下信息编写 SQL 查询

问题描述

我有以下格式的表格。

表名:UserInputHistory

UserName    UserEmail       InputText
--------    ---------       ---------
Sriram      sriram@xxx.com  abcd
Arun        Arun@xxx.com    qasas
Ram         Ram@xxx.com     asd
Sriram      sriram@xxx.com  pou

我希望查询得到如下输出。

UserName    UserEmail       NoOfInputs
--------    ---------       ----------
Sriram      sriram@xxx.com  2
Arun        Arun@xxx.com    1
Ram         Ram@xxx.com     1

在上表中,没有什么是唯一字段。我可以使用 Groupby 获取用户名和计数。我不知道如何在其中添加 UserEmail。

我获取用户名和计数的查询:

select USERNAME, COUNT(*) as NoofInputs from UserInputHistory Group by UserName 
order by UserName

请帮助我如何为上述场景编写查询。

标签: sqlsql-server

解决方案


您必须将and添加USEREMAIL到子句中:SELECTGROUP BY

select
  USERNAME,
  USEREMAIL,
  COUNT(*) as NoofInput
from UserInputHistory
group by USERNAME, USEREMAIL
order by USERNAME, USEREMAIL

将 USEREMAIL 添加到ORDER BY是可选的,但如果有多个用户具有相同的名称但不同的电子邮件可能会很好(不确定在您的场景中是否有可能)


推荐阅读