LINQ查询求助:产品测试结果的三类状态统计及二次查询问题
产品测试数据统计问题:门开关测试状态统计异常
我有一张产品测试结果表MfgTests,测试可能因多种原因失败,需要统计以下三类数据:
- 整体通过的测试总数
- 门开关测试失败且从未通过的测试数
- 门开关首次测试失败但后续通过的测试数
每条记录包含唯一UID和日期时间字段,同一产品可被多次测试。目前我写的LINQ代码能正确统计前两类数据,但第三类数据的统计存在问题:在测试数据中预期结果应为1(对应UID 10),但现有代码返回4;调整后的代码在测试数据中能得到正确结果,但在真实数据里无效。
现有代码:
var totalPass = (from d in KAKs where d.TestResult == "PASS" select d); Console.WriteLine("Total Passing: \t" + totalPass.Count()); var dataPass = (from d in KAKs where d.DoorSwitch == "PASS" select d); Console.WriteLine("Total Door Switch Passes: \t" + dataPass.Count()); var dataFail = (from d in KAKs where d.DoorSwitch == "FAIL" select d); Console.WriteLine("Total Door Switch Fails: \t" + dataFail.Count()); foreach (var uid in dataFail) { Console.WriteLine(uid.UID); var distinctPass = from list in dataPass group list by list.UID into grouped where grouped.Count() == 1 select grouped; Console.WriteLine("Door Switch Fail but pass later: \t" + distinctPass.Count()); }
调整后的代码:
var distinctPass = from list in dataPass group list by list.UID into grouped where grouped.Count() != 1 select grouped; Console.WriteLine("Door Switch Fail but pass later: \t" + distinctPass.Count());
内容的提问来源于stack exchange,提问作者EE_Kraig
相关产品推荐
相关产品推荐

