用GridView分组怎么分
加group by 速度慢
所以想在后台分组
要分组的列是 username(用户名) hostname(主机名)
sql是 select username,hostname,count(*)as documentSumform table group username,hostname
加group by 非常慢 还连接超时 怎么搞 这个是在网上找到的代码
问题是我要现实3列不知道上面显示
他是放在StringCollection sc = new StringCollection();里面的 遍历出来可是还有用户对应的主机名呢
现在显示的是username documentSum 用户个数
DataTable dt2 = new DataTable();
dt2 = usbme.getNtUserDocumentSum(this.autype.SelectedValue, documentIndexValue, start, end);
StringCollection sc = new StringCollection();
for (int i = 0; i < dt2.Rows.Count; i++)
{
string user_name = dt2.Rows[i]["user_name"].ToString();
if (!sc.Contains(user_name))
{
sc.Add(user_name);
}
}
DataTable resultDt = new DataTable();
resultDt.Columns.Add("user_name", typeof(string));
resultDt.Columns.Add("documentSum", typeof(string));
//组成新的datatble
foreach (string tempStr in sc)
{
//rainwang 66 ausz2
string[] tempArray = new string[2];
tempArray[0] = tempStr;
tempArray[1] = dt2.Compute("count(documentSum)", "user_name='" + tempStr + "'").ToString();
DataRow newRow = resultDt.NewRow();
resultDt.Rows.Add(tempArray);
}
return resultDt;
[其他解释]
比如有10行数据
usename hostname
张三 pc01
张三 pc01
张三 pc01
李四 pc02
李四 pc03
马子 pc05
马子 pc05
sql中不用group by username,hostname
那怎么分组呢
[其他解释]
你有多少数据量,一条sql还搞不定?
[其他解释]
数据量很大吗?
[其他解释]
SELECT user_name,host_name,count(*) counts
from AUO_SEP_USB_LOG as usb,
AUSREF.dbo.emp_data_all as emp,(另外一个数据库 数据库名AUSREF)
AUSREF.dbo.org_data_all as org
where PATINDEX('%RECYCLER%',usb.parameter)<1
and usb.is_allow='N'
and usb.domain_name='AUO' and site_region='AUCN'
and LEN(parameter) - LEN(replace(parameter,'/','')) <= 1
and usb.user_name=emp.LOGONID and emp.org_id=org.org_id
--and usb.event_time >= '2012/12/6 0:00:00' and usb.event_time <='2012/12/7 0:00:00'
group by user_name,host_name order by counts desc
加了这句就变慢了 其实上面的函数都没占多少时间
and usb.event_time >= '2012/12/6 0:00:00' and usb.event_time <='2012/12/7 0:00:00'