涉及count,group by和substring的SQL查询

时间:2016-06-20 10:04:10

标签: sql sql-server count group-by

enter image description here

我想根据构成SessionID开头的日期对此表的行进行分组,并且对于每一天,我想计算每组ReqPhone值的行数。每组ReqPhone值将由ReqPhone的前四位数定义。换句话说,我想知道从ReqPhone09250927开始的0940有多少行,{{1}有多少行}以ReqPhone09790969等开头等。

我一直在尝试各种0955group by,但仍然没有找到正确的查询。

任何人都可以启发我吗?

更新

在我的国家,政府从一定数字开始分配电话号码。因此,如果您知道起始数字,您就知道某人正在使用哪个电信。我正在尝试计算每天使用每个电信发送的消息数量。

3 个答案:

答案 0 :(得分:3)

SELECT SUBSTRING(ReqPhone, 1, 4),
       DATEADD(DAY,0, DATEDIFF(DAY, 0, SessionID)) AS dayCreated,
       COUNT(*) AS tally
FROM yourTable
GROUP BY SUBSTRING(ReqPhone, 1, 4),
         DATEADD(DAY, 0, DATEDIFF(DAY, 0, SessionID))

答案 1 :(得分:1)

<div style="height: 20px;padding:0" class="panel-heading">Quick Course Search</div>
<div style="height: 20px;padding:0" class="panel-body">

@using (Ajax.BeginForm("CourseSearch", "Courses",

            new AjaxOptions
            {
                InsertionMode = InsertionMode.Replace,
                HttpMethod = "GET",
                OnFailure = "searchFailed",
                LoadingElementId = "ajax-loader",
                UpdateTargetId = "searchresults",

            }))
{
    <input type="text" name="q" />
    <input type="submit" value="search" />
    <img src="@Url.Content("~/Images/ajax-lader.gif")" style="display:none" />
}

<div id="searchresults">



</div>

答案 2 :(得分:0)

这将帮助您按SELECT COUNT(SESSIONID), REQP FROM (SELECT SESSIONID,SUBSTR(REQPHONE,1,4) AS REQP FROM SCHEMA_NAME.TABLE_NAME) GROUP BY REQP 类型计算行数。此查询在Oracle DB中成功运行。

COUNT

注意:请使用{{1}}表达式中唯一的列。