【问题标题】:SQL Count number of true values from a row then multiply with another columnSQL 计算一行中的真值数量,然后与另一列相乘
【发布时间】:2014-02-12 18:15:16
【问题描述】:

我正在尝试计算一行中真实值的数量,到目前为止它看起来不错。获得值后,我想将其与同一行中“金额”列中的值相乘。

test是这样的,LA和MD的类型都是tinyint(复选框)

ID   |  Amount |   LA   |   MD
------------------------------------
1    |    7    |   1    |   0
2    |    2    |   1    |   1

到目前为止,我可以使用以下方法计算表 test 中的真实值:

SELECT count(*)
FROM test
WHERE LA = true

但是我开始实现乘法时会变得混乱,语法上还没有那么稳定。任何提示将不胜感激。

【问题讨论】:

  • SELECT Amount * LA FROM test 不起作用?
  • 你想要这个例子的结果是什么?
  • (miltos) - 我希望第 1 行为 7,第 2 行为 4。
  • (U2EF1) -SELECT Amount * LA FROM 测试只生成一行,其中包含每个 ID 中的 LA 数。
  • 为什么row2 是 4?是ID * Amount吗?

标签: mysql count multiplication


【解决方案1】:

如果你有LA=FalseMD=True,要得到正确的结果,试试

SELECT Amount * (LA + MD)
FROM test
WHERE LA = true
    OR MD = true

【讨论】:

  • 只是跟进;我如何按名称订购? (洛杉矶,马里兰州..)
  • 您没有“名称”列。如果您的意思是 LA 和 MD 列在查询末尾添加 ORDER BY LA, MD 并且如果您想将顺序更改为降序使用 ORDER BY LA DESC, MD DESC
【解决方案2】:

根据您上次的评论,查询应该如下

SELECT Amount * (LA + MD)
FROM test    

【讨论】:

  • 谢谢你,sarwar026!你的两个答案都给了我我需要的东西,现在我知道如何根据我的需要来调整它了,感激不尽!想给你们两个投票,但那是不允许的,因为我没有名声,所以只剩下我的感激之情:)
  • 我认为,where 子句在这里没有必要。无论如何,谢谢!
猜你喜欢
  • 2021-02-02
  • 2015-06-27
  • 1970-01-01
  • 2021-03-26
  • 2020-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多