0

私はPHPの専門家ではありませんが、あちこちからコピーして貼り付けていくつかの作業を行ってきましたが、見つけられないことや、その方法について少しもわからないことを尋ねたいと思います.それを実装する。

たとえば、次のようなテーブルで:

    +------+-----+
    |NAME  |BIRTH|
    +------+-----+
    |John  |1980 |
    |Carl  |1982 |
    |Alice |1990 |
    |June  |1994 |
    |Rob   |1998 |
    |Alice |1998 |
    |John  |2000 |
    |Alice |2001 |
    |Etc.  |     |
    +------+-----+

以下のように、さまざまなクエリを実行します (年を任意に組み合わせてクエリを実行し続けることもできます)。

  1. Select * from table where BIRTH between 1980 and 1990
  2. Select * from table where BIRTH between 1980 and 2001
  3. Select * from table where BIRTH between 1990 and 2001

したがって、3 つの異なるテーブルを取得します。これらのテーブルから、たとえば、取得する必要がある query1 で取得したテーブルから、さまざまなコンテンツをカウントする必要があります。

   John = 1
   Carl = 1
   Alice = 1

query2 のテーブルから:

   John = 2
   Carl = 1
   Alice = 3
   June = 1
   Rob =1

query3 のテーブルから:

   Alice = 3
   John = 1
   Carl = 1
   June = 1
   Rob =1

大きなテーブルには 700 のレコードがあることを思い出してください。新しい名前が表示される可能性があるため、同じ方法で結果を出力する必要があります。

   Alice = 3
   John = 1
   NewName = 1
   June = 1
   Rob =1

私の最終的な目標は、レジスタの合計ではなく、取得したテーブルに対するパーセンテージを実行することです。

4

1 に答える 1

3

PHP ではなく、SQL で行う必要があります。

select NAME, count(1)
from TABLE
where condition
group by NAME

これにより、必要な正確なビューが生成されます。最初の列に名前、2 番目の列にカウント。

于 2012-10-11T12:24:43.107 に答える