如何计算以特定字母开头但仍包含带有“0”的字母的类别
How do I count categories beginning with specific letters, but still include letters with '0'
我的查询给出了以每个字母开头的类别数
SELECT SUBSTRING(headings.heading,1,1) AS first_letter, COUNT(*) AS cat_count
FROM TABLE a
INNER JOIN headings
ON a.Heading=headings.heading
GROUP BY first_letter
给我:
A - 5
B - 4
C - 4
D - 2
F - 10
G - 9
依此类推直到Z
但我还希望结果包含计数为 0 的字母。 eg. E - 0
我猜 SQL 这可能会很棘手,因为我正在尝试获取不存在的东西。我必须在 PHP 中执行此操作吗?如果是这样,我有什么想法可以做到这一点吗?
如果您的 table 只有一个字段包含所有可能的结果(在您的情况下是 a-z),那么从 table 到您的数据的左外连接..
例如首字母 table:
Letter
------
A
B
C
..
Y
Z
那么您的查询将变成:
SELECT letter as first_letter, COUNT(a.heading) AS cat_count
FROM
FirstLetters l
left outer join
TABLE a
ON left(a.Heading,1)=l.letter
GROUP BY letter
抱歉,如果这不是 100% 正确的语法.. 最近没有使用 mysql
这可能对你有用:
WITH Departments AS (
SELECT SUBSTRING(D.Name,1,1) AS First_Letter, COUNT(*) AS name_count
FROM HumanResources.Department D
Group BY SUBSTRING(D.Name,1,1))
SELECT Letter, ISNULL(D.name_count,0)
FROM Letters L
LEFT JOIN Departments D ON L.Letter = D.First_letter
基本上,我正在创建一个 CTE,其中包含使用您的子字符串语句的字母计数,并将其与我的字母 table 进行比较。如果在部门 table 中找不到该字母,它将 return 0。希望这有帮助!对于字母 table,我刚刚创建了一个简单的 table,其中包含一列并将字母表中的每个字母作为值。
我的查询给出了以每个字母开头的类别数
SELECT SUBSTRING(headings.heading,1,1) AS first_letter, COUNT(*) AS cat_count
FROM TABLE a
INNER JOIN headings
ON a.Heading=headings.heading
GROUP BY first_letter
给我:
A - 5
B - 4
C - 4
D - 2
F - 10
G - 9
依此类推直到Z
但我还希望结果包含计数为 0 的字母。 eg. E - 0
我猜 SQL 这可能会很棘手,因为我正在尝试获取不存在的东西。我必须在 PHP 中执行此操作吗?如果是这样,我有什么想法可以做到这一点吗?
如果您的 table 只有一个字段包含所有可能的结果(在您的情况下是 a-z),那么从 table 到您的数据的左外连接..
例如首字母 table:
Letter
------
A
B
C
..
Y
Z
那么您的查询将变成:
SELECT letter as first_letter, COUNT(a.heading) AS cat_count
FROM
FirstLetters l
left outer join
TABLE a
ON left(a.Heading,1)=l.letter
GROUP BY letter
抱歉,如果这不是 100% 正确的语法.. 最近没有使用 mysql
这可能对你有用:
WITH Departments AS (
SELECT SUBSTRING(D.Name,1,1) AS First_Letter, COUNT(*) AS name_count
FROM HumanResources.Department D
Group BY SUBSTRING(D.Name,1,1))
SELECT Letter, ISNULL(D.name_count,0)
FROM Letters L
LEFT JOIN Departments D ON L.Letter = D.First_letter
基本上,我正在创建一个 CTE,其中包含使用您的子字符串语句的字母计数,并将其与我的字母 table 进行比较。如果在部门 table 中找不到该字母,它将 return 0。希望这有帮助!对于字母 table,我刚刚创建了一个简单的 table,其中包含一列并将字母表中的每个字母作为值。