【问题标题】:MySQL SELECT statement that counts the number of tracks soldMySQL SELECT 语句计算售出的曲目数量
【发布时间】:2019-08-08 05:23:03
【问题描述】:

这是最初的问题:

编写一个 SELECT 语句来计算已售出的曲目数量(如 InvoiceLine 表中所示),并显示每个曲目的 TrackId 和计数以及总体总数。

有两个表有问题(Track)和(Invoiceline)。这两个表共享一个 TrackId 的主键。

Track 表有 9 列 > TrackId, Name, AlbumId, MediaTypeId, GenreId, Composer, Milliseconds, Bytes, UnitPrice

InvoiceLine 表有 5 列 > InvoicelineId, InvoiceId, TrackId, UnitPirce, Quantity

我的查询是这样的:

SELECT COUNT(TrackId), TrackId FROM InvoiceLine;

但我相信这个查询不适合这个问题。 欢迎任何意见!

【问题讨论】:

  • 记得GROUP BY TrackId
  • “但我认为这个查询不适合这个问题。” 实际上,您的查询应该是无效的,并且按照 SQL 标准应该给出错误,但 MySQL 允许这些语句。除非 TrackId 是唯一列,否则可以使用 Functional Dependence .. 就像 @Daniel 提到它看起来你需要 GROUP BY TrackId 在这里
  • 好的,谢谢大家!将对此进行更多研究。

标签: mysql


【解决方案1】:
SELECT
  trackId, 
  COUNT(trackId) as total
FROM InvoiceLine
GROUP BY trackId;

这会将每个曲目显示为一列,总频率(在表格中列出的次数)显示为另一列:

| trackId | total|
| ---------------|
| track_1 |  5   |
| track_2 |  8   |

【讨论】:

    猜你喜欢
    • 2013-04-25
    • 2022-06-10
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多