我正在写一个asp.net C#Web应用程序; 我有一个名为' table1'有三列' country',' productId'和' productQuantity' 的内存数据表; 我想转动该表以获得一个新表(假设' table2')将第一列' country'作为固定列,动态数字和列' product_1',' product_2',...,' product_n'的名称根据' table1'中存在的产品总数; 第一列' country'必须包含国家/地区名称; 动态生成的列' product_1',' product_2',...,' product_n'必须包含productQuantity已为指定国家/地区的每个特定产品选择的列
我正在使用Linq查询表达式来编写代码; 问题是我不能硬编码名称和产品的价值; 我无法预测数据表中存在多少产品; 现在,我正在使用以下表达式测试结果:
var query = table1.AsEnumerable()
.GroupBy(c => c.country)
.Select(g => new
{
country = g.Key,
product_1 = g.Where(c => c.productId == "a30-m").Select(c => c.productQuantity).FirstOrDefault(),
product_2 = g.Where(c => c.productId == "q29-s").Select(c => c.productQuantity).FirstOrDefault(),
.
.
.
product_n = g.Where(c …Run Code Online (Sandbox Code Playgroud) 我有一个带有日期 ( session_date) 和值 ( price) 的 SQL Server 表。
| 会话日期 | 价格 |
|---|---|
| 2022-12-31 | 10 |
| 2022-12-30 | 9 |
| 2022年12月29日 | 5 |
| 2022年12月28日 | 7 |
| 2022年12月27日 | 2 |
| 2022-12-26 | 9 |
| 2022年12月25日 | 3 |
| 2022年12月24日 | 1 |
我想计算最后 3 行(日期)的滚动最大值并检索与每个最大值关联的 session_date:
| 会话日期 | 价格 | 滚动最大 | 滚动最后日期 |
|---|---|---|---|
| 2022-12-31 | 4 | 9 | 2022年12月29日 |
| 2022-12-30 | 4 | 9 | 2022年12月29日 |
| 2022年12月29日 | 9 | 9 | 2022年12月29日 |
| 2022年12月28日 | 7 | 7 | 2022年12月28日 |
| 2022年12月27日 | 2 | 4 | 2022-12-26 |
| 2022-12-26 | 4 | 4 | 2022-12-26 |
| 2022年12月25日 | 3 | 3 | 2022年12月25日 |
| 2022年12月24日 | 1 | 1 | 2022年12月24日 |
我正在使用此查询来计算滚动最大值,但如何获取关联的session_date ?
select session_date
, price
, max(price) over …Run Code Online (Sandbox Code Playgroud) 我在以下sql脚本中收到执行错误.
Select TOP 1 Percent a.accode,a.voucherdate,a.credit,a.Debit,
SUM(a.Debit) Over (Order By [a.accode],[a.voucherdate] ) as rdr
from VoucherMain as a
Order By a.accode,a.voucherdate
Run Code Online (Sandbox Code Playgroud)
错误信息
'order'附近的语法不正确.
谁能告诉我脚本syntext有什么问题?
我在 SQLite 中对Codility / 练习 6 SQL / SqlEventsDelta 的解决方案在本地数据库浏览器中有效,但在在线 Codility 测试编辑器中无效。我该如何解决这个问题?我想使用我自己的 SQLite 代码:
WITH cte1 AS
(
SELECT *, CASE WHEN e2.event_type = e2.prev THEN 0
WHEN e2.event_type = e2.next THEN 0
ELSE 1 END AS grp
FROM (SELECT *, LAG(e1.event_type) OVER(ORDER BY (SELECT 1)) AS prev , LEAD(e1.event_type) OVER(ORDER BY (SELECT 1)) AS next FROM events e1) e2
)
,cte2 AS
(
SELECT cte1.event_type, cte1.time, cte1.grp, cte1.value - LAG(cte1.value) OVER(ORDER BY cte1.event_type, cte1.time) AS value
FROM …Run Code Online (Sandbox Code Playgroud) over-clause ×4
sql ×2
sql-server ×2
asp.net ×1
c# ×1
lag ×1
lead ×1
linq ×1
sqlite ×1
t-sql ×1