我有两个不同的表,其中有相似的数据,一个是零件编号表,每个零件编号都是唯一的,表格描述零件编号,另一个表格是一组报价,可以有一个零件编号在桌子上多次重复。
示例:
PN Table
partNum|someOther
-------|---------
1234 | data
12345 | more data
1234-0 | no data
Quotes Table
partNum|QuoteNum
-------|---------
1234 | 1
12345 | 2
1234 | 3
1234 | 4
1234 | 5
12345 | 6
1234-0 | 7
我有这个声明我正在使用
SELECT
DISTINCT p.partNum AS pn,
COUNT(q.partNum) AS prevQuotes
FROM
PN p
LEFT JOIN
Quotes q ON p.partNum = q.partNum
WHERE
stripped_pn LIKE '123%'
我原本期望该语句返回多个结果以及Quote表中的出现次数,除了我只得到一个带有计数的结果。 我需要做什么修改才能获得PN在报价表中出现的次数?
答案 0 :(得分:1)
我很惊讶你的陈述是有效的。聚合函数COUT需要GROUP BY,如下所示:
SELECT
p.partNum AS pn,
COUNT(q.partNum) AS prevQuotes
FROM
PN p
LEFT JOIN
Quotes q ON p.partNum = q.partNum
WHERE
stripped_pn LIKE '123%'
GROUP BY p.partNum