是否可以通过函数(如sum,avg,count等)将字符串与一个或多个其他组连接起来.
说我有下表
Id Name Order Value
1 a 1 100
2 b 2 200
3 c 1 300
4 d 1 100
5 e 2 300
Run Code Online (Sandbox Code Playgroud)
现在,如果我希望结果是这种类型的东西
Order Name Value Count
1 a,c,d 500 3
2 b,e 500 2
Run Code Online (Sandbox Code Playgroud)
如何在SQL服务器上使用查询来实现相同的功能.
sql t-sql sql-server aggregate-functions sql-server-group-concat
我正在尝试使用我们的C#App提供者使用Java编写的WebService.什么时候沟通,我得到这个:
WSDoAllReceiver:传入消息不包含必需的安全标头
从昨天开始,我正在尝试找出如何将安全头添加到SOAP消息中.
是的,我读过这篇文章(对于如何创建SOAP <wsse:Security>标题无能为力),但它没有用.
我环顾四周,这似乎是一个很有问题的问题.我想知道我是否可以在这里得到一些帮助,一些指针,一些代码,让我开始.
我的查询如下;
SELECT COUNT(Id) FROM Table
Run Code Online (Sandbox Code Playgroud)
该表包含3300万条记录 - 它包含Id上的主键,没有其他索引.
查询需要30秒.
实际执行计划显示它使用聚簇索引扫描.
我们已经分析了该表,发现它没有使用此链接中显示的第一个查询进行分段:http://sqlserverpedia.com/wiki/Index_Maintenance.
关于为什么这个查询如此缓慢以及如何解决它的任何想法.
表定义:
CREATE TABLE [dbo].[DbConversation](
[ConversationID] [int] IDENTITY(1,1) NOT NULL,
[ConversationGroupID] [int] NOT NULL,
[InsideIP] [uniqueidentifier] NOT NULL,
[OutsideIP] [uniqueidentifier] NOT NULL,
[ServerPort] [int] NOT NULL,
[BytesOutbound] [bigint] NOT NULL,
[BytesInbound] [bigint] NOT NULL,
[ServerOutside] [bit] NOT NULL,
[LastFlowTime] [datetime] NOT NULL,
[LastClientPort] [int] NOT NULL,
[Protocol] [tinyint] NOT NULL,
[TypeOfService] [tinyint] NOT NULL,
CONSTRAINT [PK_Conversation_1] PRIMARY KEY CLUSTERED
(
[ConversationID] ASC
)WITH (PAD_INDEX = …Run Code Online (Sandbox Code Playgroud) 我们可以搜索字典
var dictionary = new Dictionary<string,string>();
dictionary.Keys.Where( key => key.Contains("a")).ToList();
Run Code Online (Sandbox Code Playgroud)
但它返回列表.我希望linq应该返回true或false.那么用linq搜索字典的正确代码是什么?请指导.
我正在研究相机应用程序.第一次,如果我捕获图像其工作正常,但如果我再次拍照,它会抛出一个错误
ERROR/dalvikvm-heap(2398):10077696字节的外部分配对于这个过程来说太大了."VM不会让我们分配10077696字节",最后是"05-02 05:35:38.390:ERROR/AndroidRuntime(2398):致命异常:主05-02 05:35:38.390:错误/ AndroidRuntime(2398):java.lang.OutOfMemoryError:位图大小超过VM预算
和应用程序强制关闭..如何处理这个如何清除堆和虚拟机?请帮忙..在此先感谢..
我使用POSIX pthread库编写了以下代码:
#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>
pthread_t pid1,pid2;
void *test(void *arg)
{
void **end;
printf("\nNew Thread ID: 0x%x\n",(unsigned int)pid2);
pthread_join(pid1,end);
printf("\nNew Thread going to go off\n");
printf("\nNew Thread ID: 0x%x\n",(unsigned int)pid2);
return ((void *)NULL);
}
int main()
{
pid1 = pthread_self();
pthread_create(&pid2,NULL,test,NULL);
printf("\nMain Thread ID: 0x%x\n",(unsigned int)pid1);
sleep(2);
printf("\nI am going off\n");
pthread_exit(0);
}
Run Code Online (Sandbox Code Playgroud)
在执行代码时,我得到以下输出:
Main Thread ID: 0xb7880b30 New Thread ID: 0xb787eb70 I am going off Segmentation fault
在我研究的时候,调用pthread_join的线程(pid2)将阻塞,直到在参数(pid1)中传递的线程调用pthread_exit().并且pthread_exit()用于停止执行特定线程,让所有其他线程继续执行.
我想知道为什么我最后会遇到Segmentation Fault.
请妥善解释一下.
假设您有结果集,例如:
DATE ID cost
---------------------------------------
01/01/2011 1 10
01/01/2011 1 10
01/01/2011 2 10
01/01/2011 2 10
Run Code Online (Sandbox Code Playgroud)
我想要一种方法来对成本值进行求和,但对于每个不同的ID只需要一次,这样当我按日期分组时,我得到的结果如
DATE cost
Run Code Online (Sandbox Code Playgroud)
01/01/2011 20
Run Code Online (Sandbox Code Playgroud)
我先尝试过类似的东西
sum(distinct cost)
Run Code Online (Sandbox Code Playgroud)
但是诅咒只返回10我也尝试过:
sum(case when distinct id then cost else 0 end)
Run Code Online (Sandbox Code Playgroud)
但这不是一个功能性查询.
我想测试不正确的对象引用并编写一个总是失败的测试.我将测试简化为以下行为:
[Test]
public void ScopesAreNotLeaking()
{
WeakReference weakRef;
Stub scope = null;
using (scope = new Stub())
{
weakRef = new WeakReference(scope);
}
scope = null;
GC.Collect();
GC.WaitForPendingFinalizers();
Assert.That(weakRef.Target, Is.Null);
}
Run Code Online (Sandbox Code Playgroud)
然而,该测试在不使用的情况下执行相同的操作:
[Test]
public void ScopesAreNotLeaking()
{
WeakReference weakRef;
Stub scope = new Stub();
weakRef = new WeakReference(scope);
scope = null;
GC.Collect();
GC.WaitForPendingFinalizers();
Assert.That(weakRef.Target, Is.Null);
}
Run Code Online (Sandbox Code Playgroud)
使用的存根类很简单:
class Stub : IDisposable
{
public void Dispose() {}
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下这种行为,或者 - 甚至更好 - 有一个想法,如何确保对象被垃圾收集?
PS:如果之前有过类似的问题,请耐心等待.我只检查了标题中使用的那些问题.
你认为在每个页面加载时从一个非常大的表(如50K行)中计算条目是一个好主意吗?
SELECT COUNT(*) FROM table
Run Code Online (Sandbox Code Playgroud)
现在我有2000行似乎很快,我没有看到任何页面加载延迟:)
但是这个表应该达到50K条目...而且我很好奇它将如何加载
(ps:此页面显示行计数是私有的,在Admin界面中,不是公共的)
我发现在某些情况下查询类似
select
usertable.userid,
(select top 1 name from nametable where userid = usertable.userid) as name
from usertable
where active = 1
Run Code Online (Sandbox Code Playgroud)
在SS2008R2中完成的时间比等效的连接查询要长一个数量级
select
usertable.userid,
nametable.name
from usertable
left join nametable on nametable.userid = usertable.userid
where usertable.active = 1
Run Code Online (Sandbox Code Playgroud)
其中两个表都已编入索引并且行数超过100k.有趣的是,在原始查询中插入一个top子句使其与连接查询相同:
select
top (select count(*) from usertable where active = 1) usertable.userid,
(select top 1 name from nametable where userid = usertable.userid) as name
from usertable
where active = 1
Run Code Online (Sandbox Code Playgroud)
有没有人知道为什么原始查询表现如此糟糕?