$\DeclareMathOperator\PSL{PSL}\DeclareMathOperator\Aut{Aut}$Consider the class of finite groups $G$ having a zero entry in each column of its character table (except the first one), i.e. for all $g \neq e$ there is an irreducible character $\chi$ such that $\chi(g) = 0$.

I have been led to consider such character table, here are the examples found (see the GAP codes in Appendix):

- at order less than $384$, this class reduces to $A_5$, $S_5$, $\PSL(2,7)$, $\Aut(\PSL(2,7))$ and $A_6$,
- every simple group of order less than $3000000$ is in this class except $A_7$, $M_{22}$,
- every perfect group of order less than $3600$ in this class is simple,
- if $5 \le n \le 19$, then $A_n$ is not in this class iff $n \in \{ 7, 11, 13, 15, 16, 18, 19\}$. Idem for $S_n$.

**Question**: What are the finite groups in this class? Which simple groups are not in?

The group $\PSL(2,q)$ is in this class iff it is simple, iff $q \ge 4$ (the generic character table is known).

Observe that all the examples found above are almost simple, but:

**Proposition**: This class is stable by direct product.

*proof*: Immediate by Theorem 4.21 in Isaacs' Character Theory of Finite Groups stating that the irreducible characters of a direct product are exactly the product of the irreducible characters of the components. $\square$

Note that $A_5 \times A_5$ is a non almost-simple finite group in this class, maybe the smallest one.

**Appendix**

*Small groups*:

```
gap> for o in [2..383] do n:=NrSmallGroups(o);; for d in [1..n] do G:=SmallGroup(o,d);; L:=Irr(CharacterTable(G));; l:=Length(L);; a:=0;; for j in [2..l] do LL:= List([1..l], i-> L[i][j]);; if not 0 in LL then a:=1;; break; fi; od; if a=0 then Print([G,[o,d]]); fi; od; od;
[ AlternatingGroup( [ 1 .. 5 ] ), [ 60, 5 ] ][ SymmetricGroup( [ 1 .. 5 ] ), [ 120, 34 ] ][ Group( [ (3,4)(5,6), (1,2,3)(4,5,7) ] ), [ 168, 42 ] ][ Group( [ (1,4,6,8,5,2,7,3), (1,3,8,6,5,4,7) ] ), [ 336, 208 ] ][ AlternatingGroup( [ 1 .. 6 ] ), [ 360, 118 ] ]
```

*Simple Groups*:

```
gap> it:=SimpleGroupsIterator(10,3000000);; for G in it do L:=Irr(CharacterTable(G));; l:=Length(L);; a:=0;; for j in [2..l] do LL:= List([1..l], i-> L[i][j]);; if not 0 in LL then a:=1;; break; fi; od; if a=1 then Print([G]); fi; od;
[ A7 ][ M22 ]
```

*Perfect Groups*:

```
gap> for o in [60..3599] do n:=NumberPerfectGroups(o);; for d in [1..n] do G:=PerfectGroup(o,d);; L:=Irr(CharacterTable(G));; l:=Length(L);; a:=0;; for j in [2..l] do LL:= List([1..l], i-> L[i][j]);; if not 0 in LL then a:=1;; break; fi; od; if a=0 then Print([G,[o,d]]); fi; od; od;
[ A5, [ 60, 1 ] ][ L3(2), [ 168, 1 ] ][ A6, [ 360, 1 ] ][ L2(8), [ 504, 1 ] ][ L2(11), [ 660, 1 ] ][ L2(13), [ 1092, 1 ] ][ L2(17), [ 2448, 1 ] ][ L2(19), [ 3420, 1 ] ]
```

*Alternating groups*:

```
gap> for n in [5..19] do s:=Concatenation("A",String(n));; L:=Irr(CharacterTable(s));; l:=Length(L);; a:=0;; for j in [2..l] do LL:= List([1..l], i-> L[i][j]);; if not 0 in LL then a:=1;; break; fi; od; if a=1 then Print([s]); fi; od;
[ "A7" ][ "A11" ][ "A13" ][ "A15" ][ "A16" ][ "A18" ][ "A19" ]
```

2more comments