我正在尝试学习聚合函数如何在SQL中工作,我无法计算出如何计算值在查询中出现的次数。
我正在使用 MSSQL 2008 ,我尝试的所有内容似乎都会导致错误。
以下是我的询问:
SELECT category,
template,
galleryshortDescription,
galleryLongDescription,
GalleryName,
GalleryTitle,
GalleryID,
GalleryCreatedDate,
GalleryLastUpdated,
GalleryPublished,
GalleryViews,
ObjectID,
GalleryDescription,
HtmlMetaKeywords,
HtmlMetaDescription
FROM dbo.ImageGallery
我想返回category
字段以及它在此查询中显示的总次数,并且我已尝试使用
count (category) AS category_counter
任何建议非常感谢
提前致谢
答案 0 :(得分:1)
我想返回类别字段以及总数 它出现在此查询中的次数
SELECT
Category,
COUNT(category) AS category_counter
FROM dbo.ImageGallery
GROUP BY category;
例如,此查询将为您提供以下内容:
| CATEGORY | CATEGORY_COUNTER |
--------------------------------
| Category1 | 2 |
| Category2 | 2 |
| Category3 | 3 |
| Category4 | 3 |
但是你的表中有一个大问题。
您的表格不是normalized,您应该将此表格拆分为以下表格:
<强> Categories:
强>
CategoryId
,CategoryName
。 <强> GalleriesProperties
强>:
GalleryId
,GalleryName
,GalleryshortDescription
,GalleryLongDescription
,GalleryTitle
,GalleryCreatedDate
,GalleryLastUpdated
,GalleryPublished
,GalleryViews
,GalleryDescription
。 <强> HTMLMetas
强>
HTMLMetaID
HtmlMetaKeywords
,HtmlMetaDescription
然后你的表格 ImageGallery
就像:
GalleryId
,CategoryId
外键引用Categories表(CategoryID),Template
,HTMLMetaID
htmlmeta表的外键。这只是一个例子,它可能需要在您的上下文中进行更多调整。但是你应该阅读更多相关内容。
答案 1 :(得分:0)
您必须使用GROUP BY和COUNT。我们试着阅读:http://www.w3schools.com/sql/sql_func_count.asp和http://www.w3schools.com/sql/sql_groupby.asp
答案 2 :(得分:0)
你必须使用Count(类别)和按类别分组
SELECT category, count(category) as ColumnNameofYourChoice
FROM dbo.ImageGallery
group by category
使用计数时,你必须使用group by,你需要在其上进行计数。
答案 3 :(得分:0)
最好在Temp表中存储类别和No_of_category。之后,您可以将您的餐桌加入Temp餐桌.. 例如
SELECT category, count(category) No_Of_category
into #temp
FROM dbo.ImageGallery
group by category
SELECT cat.category, t.No_Of_category,
cat. template,
cat.galleryshortDescription,
cat.galleryLongDescription,
cat.GalleryName,
cat.GalleryTitle,
cat.GalleryID,
cat.GalleryCreatedDate,
cat.GalleryLastUpdated,
cat.GalleryPublished,
cat.GalleryViews,
cat.ObjectID,
cat.GalleryDescription,
cat.HtmlMetaKeywords,
cat.HtmlMetaDescription
FROM dbo.ImageGallery cat
left outer join #temp t on cat.category=t.category