如何编写SQL查询以下信息

时间:2019-11-27 10:27:22

标签: sql sql-server

我正在使用以下格式的表。

表名: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来获取UserName并进行计数。我不知道如何在其中添加UserEmail。

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

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

请帮助我如何针对上述情况编写查询。

8 个答案:

答案 0 :(得分:3)

您必须在NotReadableError: Concurrent mic process limit. USEREMAIL子句中添加SELECT

GROUP BY

将USEREMAIL添加到select USERNAME, USEREMAIL, COUNT(*) as NoofInput from UserInputHistory group by USERNAME, USEREMAIL order by USERNAME, USEREMAIL 是可选操作,但是如果有多个具有相同名称但电子邮件不同的用户(如果不确定在您的情况下是否有这种可能),可能会很高兴

答案 1 :(得分:2)

就这样

delay

答案 2 :(得分:1)

您可以使用以下查询:

    public void totalCost (String [] type, String [] name, String [] quantity)
{
    for (int i = 0; i < type.length;i++)
    {
        System.out.println(type[i].toString()); // value is "Rice"
        System.out.println(name[i].toString()); // value is "Nasi Lemak"
        System.out.println(FoodMenu.getPrice("Rice","Nasi Lemak")); // returns 2.5
        System.out.println(FoodMenu.getPrice(type [i], name [i])); // returns 0
    }
}

答案 3 :(得分:1)

您应将所有非聚合列添加到分组依据:

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

答案 4 :(得分:1)

您要查找的列是UserName,UserEmail和该用户的行数计数。

以下查询将起作用:

选择用户名,用户电子邮件,count(*)作为NoOfInputs FROM UserInputHistory 按用户名,用户电子邮件分组 按NoOfInputs desc,UserName asc排序

您需要按所选的所有非聚合字段分组。 我还按输入数量(降序),用户名(升序)对其进行了排序。

答案 5 :(得分:1)

请在查询下面运行以获取所需的输出。

SELECT USERNAME
    ,USEREMAIL
    ,COUNT(*) AS NoofInput
FROM UserInputHistory
GROUP BY USERNAME
    ,USEREMAIL
ORDER BY USERNAME
    ,USEREMAIL

答案 6 :(得分:1)

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

答案 7 :(得分:1)

No need of using order by username.
If you are using order by 
it will sort your data according to the username.

只需使用此:

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