我尝试使用字符串函数substring()和charindex()获取所有电子邮件地址的域名,然后将其分组并计算具有相同域名的电子邮件数量。
我的查询:
substring(Email, charindex(@SearchTerm, Email) + 1, len(Email))
但正如您所看到的,"组中使用的语句由"子句与我在&#34中使用的子句相同;选择"声明。它有点长,我不想写下两次。所以我只是想知道是否有一种方法我只能写std::cin >> number;
getchar();
一次,但仍能达到相同的效果?
我的表:
结果:
答案 0 :(得分:3)
public partial class ProgressBarViewModel : INotifyPropertyChanged{
int _completion;
public int Completion
{
get { return _completion; }
set
{
_completion = value;
Notify("Completion");
}
}
private string _fileCopied;
public string FileCopiedString
{
get { return _fileCopied; }
set
{
_fileCopied = value;
Notify("FileCopiedString");
}
}
public void ChangeCompletion(int Value, string file)
{
Completion = Value;
FileCopiedString = FileCopiedString + file;
}
public event PropertyChangedEventHandler PropertyChanged;
public void Notify(string name)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
答案 1 :(得分:1)
WITH t AS ( SELECT SUBSTRING(email,3,LEN(email)) AS emaildomain
FROM tblresident )
SELECT emaildomain,COUNT(*)
FROM t
GROUP BY emaildomain;
答案 2 :(得分:-1)
首先,如果您想要J.comJ和K@J.com的J.com一次;意味着你必须用表达式进行分组,那么你所做的就是最好的方法。
另一方面,如果你想从J@J.com和K@J.com两次获得J.com,那么你可以这样做;
SELECT substring(Email, charindex(@SearchTerm, Email) + 1, len(Email)) as [Email Domain],
COUNT(Email) as Total
FROM tblResident
GROUP BY Email