1

集計関数が 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

どんな提案でも大歓迎です

前もって感謝します

4

4 に答える 4

1

カテゴリ フィールドと、このクエリに表示される合計回数を返したい

必要なのは、次のように a を使用するGROUP BYことCOUNTです。

SELECT
  Category,
  COUNT(category) AS category_counter
FROM  dbo.ImageGallery
GROUP BY category;

SQL フィドルのデモ

たとえば、このクエリは次のようになります。

|  CATEGORY | CATEGORY_COUNTER |
--------------------------------
| Category1 |                2 |
| Category2 |                2 |
| Category3 |                3 |
| Category4 |                3 |

しかし、あなたのテーブルには大きな問題があります。

この方法のテーブルは正規化されていません。このテーブルを次のテーブルに分割する必要があります。

Categories:

  • CategoryId
  • CategoryName.

GalleriesProperties:

  • GalleryId
  • GalleryName
  • GalleryshortDescription
  • GalleryLongDescription
  • GalleryTitle
  • GalleryCreatedDate
  • GalleryLastUpdated
  • GalleryPublished
  • GalleryViews
  • GalleryDescription.

HTMLMetas

  • HTMLMetaID
  • HtmlMetaKeywords
  • HtmlMetaDescription

次に、テーブルImageGalleryは次のようになります。

  • GalleryId
  • CategoryId外部キーは Categories テーブル (CategoryID) を参照します。
  • Template
  • HTMLMetaIDhtmlmeta テーブルへの外部キー。

これは単なる例であり、コンテキストによってはさらに調整が必要になる場合があります。しかし、あなたはこれについてもっと読むべきです。

于 2012-12-19T09:53:28.513 に答える
0

GROUP BY と COUNT を使用する必要があります。読んでみましょう: http://www.w3schools.com/sql/sql_func_count.asphttp://www.w3schools.com/sql/sql_groupby.asp

于 2012-12-19T09:53:31.830 に答える
0

Count(category) を使用し、このようにカテゴリ別にグループ化する必要があります

SELECT  category, count(category) as ColumnNameofYourChoice
  FROM dbo.ImageGallery 
     group by category

count を使用する場合は、group by を使用する必要があります。これにより、count が発生します。

于 2012-12-19T09:58:55.147 に答える