相关疑难解决方法(0)

在Oracle中连接并分组多行

可能重复:
如何在Oracle中以A,B格式检索两列数据

假设我有一个这样的表:

NAME          GROUP_NAME
name1         groupA
name2         groupB
name5         groupC
name4         groupA
name3         groupC
Run Code Online (Sandbox Code Playgroud)

我想得到这样的结果:

GROUP_NAME     NAMES
groupA         name1,name4
groupB         name2
groupC         name3,name5
Run Code Online (Sandbox Code Playgroud)

如果表中只有一列,我可以通过执行以下操作来连接记录,但是在上下文中进行分组时,我真的没有太多想法.

连接一个列表:

SELECT names 
FROM (SELECT SYS_CONNECT_BY_PATH(names,' ') names, level
      FROM name_table

      START WITH names = (SELECT names FROM name_table WHERE rownum = 1)
      CONNECT BY PRIOR names < names
      ORDER BY level DESC)
      WHERE rownum = 1 
Run Code Online (Sandbox Code Playgroud)

更新:

我现在有一个解决方案LISTAGG:

SELECT
group_name,
LISTAGG(name, ', ')
WITHIN GROUP (ORDER BY GROUP) "names"
FROM name_table
GROUP …
Run Code Online (Sandbox Code Playgroud)

sql oracle grouping concatenation group-concat

30
推荐指数
1
解决办法
8万
查看次数

实体框架按日期选择每个组中的一个

我有一个这样的表(表名:帖子):

+----+--------------------------+-------+------------+
| id |         content          | type  |    date    |
+----+--------------------------+-------+------------+
|  0 | Some text                | TypeA | 2013-04-01 |
|  1 | Some older text          | TypeA | 2012-03-01 |
|  2 | Some even older texttext | TypeA | 2011-01-01 |
|  3 | A dog                    | TypeB | 2013-04-01 |
|  4 | And older dog            | TypeB | 2012-03-01 |
|  5 | An even older dog        | TypeB | 2011-01-01 |
+----+--------------------------+-------+------------+
Run Code Online (Sandbox Code Playgroud)

使用LINQ表达式我想找到每种类型的最新内容,所以结果应该是 …

c# linq entity-framework

25
推荐指数
1
解决办法
3万
查看次数

不支持客户端GroupBy

我有以下Entity Framework Core 3.0:

var units = await context.Units
  .SelectMany(y => y.UnitsI18N)
  .OrderBy(y => y.Name)
  .GroupBy(y => y.LanguageCode)
  .ToDictionaryAsync(y => y.Key, y => y.Select(z => z.Name));
Run Code Online (Sandbox Code Playgroud)

我得到以下错误:

Client side GroupBy is not supported.
Run Code Online (Sandbox Code Playgroud)

如果未在客户端上运行查询,为什么会出现此错误?

要在客户端或客户端的一部分上运行查询,我将执行以下操作:

var units = context.Units
  .SelectMany(y => y.UnitsI18N)
  .OrderBy(y => y.Name)
  .AsEnumerable()
  .GroupBy(y => y.LanguageCode)
  .ToDictionary(y => y.Key, y => y.Select(z => z.Name));
Run Code Online (Sandbox Code Playgroud)

现在可以了...

entity-framework-core-3.0

10
推荐指数
2
解决办法
1211
查看次数

在Linq中调用Select()或GroupBy()实体是否会触发查询数据库?

我很难说linq中的哪些操作会导致向数据库发出SQL命令.

我知道调用ToList()或使用foreach迭代将导致查询运行但是Select和GroupBy会导致代码在数据库上执行吗?

linq linq-to-entities entity-framework

8
推荐指数
1
解决办法
1695
查看次数

无法创建"xxx"类型的常量值.在此上下文中仅支持基元类型或枚举类型

我有两个表是州和名单.

------------
id | state
------------
1  |xxx
2  |yyy
Run Code Online (Sandbox Code Playgroud)

名单

---------------
id|Name   |stateid
--------------
1|aaa     |1
2|abb     |1
3|ccc     |2
4|dds     |2
Run Code Online (Sandbox Code Playgroud)

我希望结果表为

------------------
state   |count
-------------------
xxx     | 2
yyy     | 2
Run Code Online (Sandbox Code Playgroud)

我想使用linq查询以上结果

我尝试下面的代码,但返回错误为(无法创建类型'xxx'的常量值.在此上下文中仅支持基本类型或枚举类型.)

var count= (from n in bc.db.state 
            select new 
                  { 
                    states = n.state, 
                    count = (from c in bc.db.namelist 
                             where c.stateid == n.id 
                             select n).Count() 
                   });
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

c# linq

5
推荐指数
1
解决办法
836
查看次数