可能重复:
如何在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) 我有一个这样的表(表名:帖子):
+----+--------------------------+-------+------------+
| 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表达式我想找到每种类型的最新内容,所以结果应该是 …
我有以下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)
现在可以了...
我很难说linq中的哪些操作会导致向数据库发出SQL命令.
我知道调用ToList()或使用foreach迭代将导致查询运行但是Select和GroupBy会导致代码在数据库上执行吗?
我有两个表是州和名单.
州
------------
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)
有谁知道如何解决这个问题?