我正在尝试将sql转换为lambda或LINQ,但还不能简化,
我设法为它做两个不同的lambda,但我希望它是一个查询。
SQL查询是这样
SELECT PamID, MAX (MaxAmount)
FROM RebateTable
GROUP BY PamID
到目前为止,这是可行的,但是还有什么更好的方法。
var t = from r in RebateList
group r by r.PamID;
var x = from y in t
select new RebateMaxClass
{
PamId = y.Key,
TotalSale = y.Max(s => s.MaxAmount)
};
答案 0 :(得分:4)
您可以使用以下形式:
import tensorflow as tf
c = []
for i, d in enumerate(['/gpu:0', '/gpu:1', '/gpu:2']):
with tf.device(d):
a = tf.get_variable(f"a_{i}", [2, 3], initializer=tf.random_uniform_initializer(-1, 1))
b = tf.get_variable(f"b_{i}", [3, 2], initializer=tf.random_uniform_initializer(-1, 1))
c.append(tf.matmul(a, b))
with tf.device('/cpu:0'):
sum = tf.add_n(c)
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
init = tf.global_variables_initializer()
sess.run(init)
print(sess.run(sum))
# [[-0.36499196 -0.07454088]
# [-0.33966339 0.30250686]]
答案 1 :(得分:2)
查询看起来不错。您可以像这样形成一个查询:
var t = from r in RebateList
group r by r.PamId into y
select new
{
PamId = y.Key,
TotalSale = y.Max(s => s.MaxAmount)
};
但这并不快。查询已扩展,将一直执行直到必须执行。
一种替代方法是形成“新的LinQ样式”:
var t2 = RebateList.GroupBy(g => g.PamId) // Do a Grouping
var t3 = t2.Select(s => new { PamId = s.Key, TotalSale = s.Max(m => m.MaxAmount) });